.586
.model flat,stdcall
option casemap:none
include ..\include\kernel32.inc
include ..\include\windows.inc
include ..\include\shell32.inc
includelib ..\lib\kernel32.lib
includelib ..\lib\shell32.lib
.data?
syst STARTUPINFOA <?>
prc PROCESS_INFORMATION <?>
.data
prog db 'l:\bin\prog.exe',0
.code
begin:
invoke GetStartupInfo,offset syst
invoke CreateProcess,offset prog,0,0,0,FALSE,REALTIME_PRIORITY_CLASS,0,0,offset syst,offset prc;
invoke WaitForSingleObject,prc.hProcess,INFINITE
end begin
Как дождать завершения работы приложения:???:
Запускаю программно одельное приложение, нужно дождаться когда оно завершит свою работу потом только продолжать работать далее.
пример кода:
[FONT=arial]
ShellExecute(NULL, "open", "c:\\temp\\1.bat", NULL, NULL, SW_HIDE);
[/FONT]
нужно что бы дальше программа не выполняла свою работу пока не выполнит свою 1.bat:???:
подскажите как сделать, плиззз...
Код:
А вот на Delphi (Windows придётся пристегнуть):
Код:
Procedure RunProc(s:ShortString);
Var
syst:StartupInfo;
proc:Process_Information;
cmd:PChar;
Begin
GetStartupInfo(syst);
StrPCopy(cmd,s);
CreateProcess(cmd,nil,nil,nil,False,HIGH_PRIORITY_CLASS,nil,nil,syst,proc);
WaitForSingleObject(proc.hProcess,INFINITE);
End;
Var
syst:StartupInfo;
proc:Process_Information;
cmd:PChar;
Begin
GetStartupInfo(syst);
StrPCopy(cmd,s);
CreateProcess(cmd,nil,nil,nil,False,HIGH_PRIORITY_CLASS,nil,nil,syst,proc);
WaitForSingleObject(proc.hProcess,INFINITE);
End;
кому интересно, вот пример на C++:
Код:
STARTUPINFOA syst;
PROCESS_INFORMATION prc;
GetStartupInfo(&syst);
CreateProcess( "c:\\temp\\1.exe", 0, 0, 0, FALSE,REALTIME_PRIORITY_CLASS, 0, 0, &syst, &prc);
WaitForSingleObject( prc.hProcess, INFINITE );
PROCESS_INFORMATION prc;
GetStartupInfo(&syst);
CreateProcess( "c:\\temp\\1.exe", 0, 0, 0, FALSE,REALTIME_PRIORITY_CLASS, 0, 0, &syst, &prc);
WaitForSingleObject( prc.hProcess, INFINITE );