PDA

View Full Version : سوال: Run and wait در دلفی؟



پرنده کوچک
شنبه 13 اسفند 1384, 23:46 عصر
سلام.
من میخواهم در برنامه یه فایل اجرایی (فایل نصب NETFramework.) رو اجرا کنم و در این مدت برنامه من منتظر باشد تا نصب تمام شود، سپس برنامه ام ادامه یابد (یعنی wait داشته باشم).
چطور میتونم این کارو بکنم؟

Mahmood_M
شنبه 13 اسفند 1384, 23:56 عصر
دوست عزیز می تونید از تابع Sleep استفاده کنید، برای مثال :


Sleep(2000);

توجه داشته باشید که اعداد داخل پرانتز بر حسب میلی ثانیه محاسبه می شوند ( در مثال بال برنامه شما 2000 میلی ثانیه متوقف می ماند ) ... .
البته شاید راههای دیگه ای هم باشه که دوستان اگه بدونند حتما زحمتشو می کشن.
نکته مهم : اگر اجرای فایل نصب توسط برنامه شما صورت می گیرد باید تابع Sleep را بعد از شروع عملیات نصب و اجرای فایل نصب اجرا نمایید ...

Hamid_PaK
یک شنبه 14 اسفند 1384, 06:03 صبح
با WinExecAndWait فایل مورد نظر رو اجرا کنید و این تابع تا پایان اجرای فایل منتظر می ماند ...
( در مورد تابع در همین سایت توضیح داده شده ، جستجو کنید )

یا حق !!!

Ehsansh
یک شنبه 14 اسفند 1384, 06:50 صبح
اینهم کدش:


Function ExecuteAndWait(sExecutableFile : String) : Boolean;
var
siInfo : TStartUpInfo;
piInfo : TProcessInformation;
begin
FillChar(siInfo, SizeOf(siInfo), #0);

with siInfo do begin
cb := SizeOf(siInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_SHOWNORMAL;
end;
Result := CreateProcess(NIL, pChar(sExecutableFile), NIL, NIL, FALSE, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, NIL, pchar(ExtractFilePath(sExecutableFile)),siInfo, piInfo);
if Result then
WaitForSingleObject(piInfo.hprocess,INFINITE);
end;