[Delphi] exe starten en wachten tot exe klaar is

Pagina: 1
Acties:

  • MPEG
  • Registratie: Oktober 2000
  • Laatst online: 21-10-2020
Ik zit met het volgende, ik wil een autorun proggie maken die controleerd of bepaalde software geïnstalleerd is. Indien de software nog niet is geïnstalleerd moet dit eerst gedaan worden en daarna moet dat programma opgestart worden.

Nu heb ik al wel de commando's om een .exe op te starten, maar is het nu ook nog mogelijk om te wachten tot dat programma klaar is met de installatie?

AMD 64 X2 4800+ @2,41Ghz,
2048MB DDRRAM,
ATI X800GTO,
2x Samsung 930BF 19" TFT


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Probeer dit maar es:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure StartAndWait(CommandLine: string);
var
  Buffer: array[0..511] of Char;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
  WaitResult: Cardinal;
begin
StrPCopy(Buffer, CommandLine);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_SHOWDEFAULT;
if CreateProcess(nil, Buffer, nil, nil, False,
             CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
             nil, nil, StartupInfo, ProcessInfo)
then repeat
     WaitResult := WaitforSingleObject(ProcessInfo.hProcess, 0);
     Application.ProcessMessages;
     until WaitResult = WAIT_OBJECT_0;
end;

日本!🎌


Verwijderd

Misschien een beetje (te) laat, maar ik kwam toevallig nog een linkje tegen, misschien dat je er iets aan hebt.

http://www.programmersheaven.com/zone2/cat69/17074.htm

Verwijderd

Vergeet niet de handles van het proces en de thread te sluiten met CloseHandle!! Dat gebeurt hierboven niet.