ورود

View Full Version : اجرای دو فایل اجراپی پشت سر هم



babila
یک شنبه 12 مهر 1383, 11:42 صبح
دوستان من چطور می تونم دو تا فایل اجراپی (مثلا دو تا فایل Setup.exe) را
پشت سر هم اجرا کنم طوری که اولین فایل Setup اجرا شده و تمام مراحل نصب به
پایان برسدو سپس فایل اجراپی دوم اجرا شود طوری که این دو فایل اجراپی همزمان
احرا نشوند. :roll:

SalarSoft
سه شنبه 14 مهر 1383, 10:58 صبح
با استفاده از تابع زیر و قرار دادن پارامتر MustWait به مقدار True برنامه صبر خواهد کرد تا اجرای برنامه فوق به پایان برسد! :)
مثلا:
<span dir=ltr>RunProcess('c:\myexe.exe',true);</span>


Function RunProcess&#40;Const AppPath&#58;String;MustWait&#58;Boolean=False;AppParams&#58;St ring='';Visibility&#58;Word=SW_SHOWNORMAL&#41;&#58;DWord;
Var
SI&#58;TStartupInfo;
PI&#58;TPROCessINFORMATION;
Proc&#58;THandle;
zFileName&#58;Array&#91;0..Max_Path*2&#93;of char;
zParams&#58;Array&#91;0..Max_Path&#93;of char;
begin
FillChar&#40;SI,SizeOf&#40;SI&#41;,0&#41;;
SI.cb&#58;=SizeOf&#40;Si&#41;;
Si.wShowWindow&#58;=Visibility;
If Not CreateProcess&#40;strPCopy&#40;zFilename,AppPath&#41;,
StrPCopy&#40;zParams,APpParams&#41;,
nil,nil,False,NORMAL_PRIORITY_CLASs ,nil,nil,SI,PI&#41; then
Raise EXCeption.CreateFmt&#40;'Failed to execute program '+
apppath+'.Error Code %d',&#91;GetlastError&#93;&#41;;
Proc&#58;=PI.hProcess;
CloseHandle&#40;Pi.HThread&#41;;
If MustWait then
If WaitForSingleObject&#40;Proc,infinite&#41;&lt;>Wait_Failed then
GetExitCodeProcess&#40;Proc,Result&#41;;
CloseHandle&#40;Proc&#41;;
end;