Wie Sie eine MS-DOS-batch-Programm aus delphi 2010-Anwendung

Ich versuche eine routine zu schreiben, der ausgeführt wird, eine DOS-batch-Programm aus einem Delphi-2010-Anwendung. Meine alte routine, die funktioniert in Delphi 6 gibt mir immer die Fehlermeldung:-

"Project1.exe ausgelöste exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 7C82F29C in Modul 'kernel32.dll'. Schreiben von Adresse 004A3B82".

Hier ist meine alte routine, die funktioniert in Delphi 6:-

Procedure TForm1.BatchProgramCall;  
var  
    StartInfo: TStartUpInfo;  
    ProcInfo: TProcessInformation;  
    createOK: Boolean;  
begin  
     FillChar(StartInfo, SizeOf(TStartUpInfo), #0);  
     FillChar(ProcInfo, SizeOf(TProcessInformation), #0);  
     StartInfo.cb := SizeOf(TStartUpInfo);  
     StartInfo.dwFlags := STARTF_USESHOWWINDOW;  
     StartInfo.wShowWindow := SW_SHOWMINIMIZED;  

     createOK := CreateProcess(Nil,PCHAR('SOMEBATCHPROGRAM.BAT'),Nil, Nil, false,
                               CREATE_NEW_PROCESS_GROUP+HIGH_PRIORITY_CLASS,
                               NIL, NIL, STARTINFO, PROCINFO);
     if createOK then
        waitForSingleObject(PROCINFO.HPROCESS, Infinite);
end;

Bitte lassen Sie mich wissen, was mache ich falsch oder gibt es viel bessere Weg zu gehen über diese...
Vielen Dank.

  • Suche auf StackOverflow für "[delphi] ShellExecute" oder "[delphi] ShellExecuteEx" bietet Ihnen einige alternativen.
InformationsquelleAutor Snackmoore | 2009-11-18
Schreibe einen Kommentar