Einzelnen Beitrag anzeigen

aegidos

Registriert seit: 30. Okt 2007
40 Beiträge
 
Delphi 2007 Professional
 
#8

Re: CreateProcess Zugriff verweigert

  Alt 18. Feb 2009, 09:23
Danke für die Hilfe,
Die Batch als einen einzigen Prozess zu starten funktioniert bei mir leider nicht da ich die Exitcodes der gestarteten exe-Files auswerten muss.
Delphi-Quellcode:
del C:\Software\sw\report_detail.pdf
copy C:\Software\sw\report.xml C:\Software\sw\protocol.xml
C:\Software\sw\help_program.exe
del C:\Software\sw\report_detail2.pdf
copy C:\Software\sw\report.xml C:\Software\sw\protocol2.xml
C:\Software\sw\help_program2.exe
Mich interessieren jeweils die exitcodes von help_program.exe und help_program2.exe. Würde ich einen einzigen Prozess starten bekomme ich nicht mit wann eine exe fertig ist und wann eine neue startet.

ich habe mein Problem mit den Shell-Bultin-Commands nun wie folgt gelöst:
Delphi-Quellcode:
      starti := Pos('del ', strDummy);
         if starti = 1 then
         begin
            //del befehl gefunden, nun comandlineString "zerschneiden"
           strConcat := Copy(strDummy, 5,Length(strDummy));
           if(FileExists(strConcat))then
           DeleteFile(strConcat);
         end else if ( Pos('copy ', strDummy) = 1) then
         begin
            //copy befehl gefunden, nun comandlineString "zerschneiden" um source und destination zu erhalten
           strConcat := Copy(strDummy, 6,Length(strDummy));
           strConcatSource := Copy(strConcat, 0,(Pos(' ',strConcat))-1);
           strConcatDestination := Copy(strConcat, (Pos(' ',strConcat))+1,Length(strConcat));
           if(FileExists(strConcatSource))then
           CopyFile(PChar(strConcatSource),PChar(strConcatDestination),False);
           end else
  if not CreateProcess(
    nil,
    //PChar(CommandLine),
    PChar(strDummy),
    nil,
    nil,
    True,
    ProPri, // and CREATE_NEW_CONSOLE,
    nil,
    nil,
    StartupInfo,
    ProcessInfo)
  then begin
Nun wird nur ein eigener Prozess gestartet wenn tatsächlich eine exe gestartet wird. Ich hoffe das ist nun auch performanter.

Darauf, dass ich die del und copy nicht über createprocess aufrufen kann ohne "cmd" davor zu schreiben wär ich nie gekommen.
Merci !
  Mit Zitat antworten Zitat