Einzelnen Beitrag anzeigen

Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#3

Re: Fremdanwendung starten und neben Programm positionieren

  Alt 8. Mai 2009, 17:19
Zitat:
Am besten startest du den Prozess mit CreateProcess
Na gut erstmal wieder CreateProcess anschauen . . .

Delphi-Quellcode:
function ExecNewProcess
( ProgramName : String;
          Wait : Boolean
   var LProcInfo : Dword) : Dword;
var
    StartInfo : TStartupInfo;
    ProcInfo : TProcessInformation;
    CreateOK : Boolean;
begin
    FillChar(StartInfo,SizeOf(TStartupInfo),#0);
    FillChar(ProcInfo,SizeOf(TProcessInformation),#0);
    StartInfo.cb := SizeOf(TStartupInfo);
    CreateOK := CreateProcess(nil, PChar(ProgramName), nil, nil,False,
              CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS,
              nil, nil, StartInfo, ProcInfo);
    { na wirklich gestartet ? } 
    if CreateOK then
    begin
        //may or may not be needed. Usually wait for child processes
       if Wait then WaitForSingleObject(ProcInfo.hProcess, INFINITE);
    end
    else
    begin
         ShowMessage('Läuft nicht: '+ProgramName);
     end;
     CloseHandle(ProcInfo.hProcess);
     CloseHandle(ProcInfo.hThread);

     LProcInfo := ProcInfo.hProcess;
     GetExitCodeProcess(ProcInfo.hProcess, Result ) {ProcInfo ist ErrorCode};
     
end;
Version 2: Ohne das 'ProcessMessage' gehts dann auch und jetzt habe ich die ProcessId....

Grüße
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat