如何判段 Shellexecute 執行完了沒?? 或讓程式等ShellExecute |
|
yu168
一般會員 發表:29 回覆:27 積分:16 註冊:2002-06-28 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
uses ShellAPI; procedure TForm1.Button1Click(Sender: TObject); var ShExecInfo : SHELLEXECUTEINFO; ProcessInfo : PROCESS_INFORMATION ; Startup_Info : STARTUPINFO ; Info: TShellExecuteInfo; begin //SHELLEXECUTEINFO ShExecInfo = {0}; //SHELLEXECUTEINFO ShExecInfo ; ShExecInfo.cbSize := sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS; //ShExecInfo.hwnd := nil; ShExecInfo.Wnd :=Application.Handle; ; ShExecInfo.lpVerb := ''; ShExecInfo.lpFile := 'C:\Windows\NotePad.exe'; ShExecInfo.lpParameters := ''; ShExecInfo.lpDirectory := nil; ShExecInfo.nShow := SW_SHOW; //ShExecInfo.hInstApp := nil; ShellExecuteEx(@ShExecInfo); WaitForSingleObject(ShExecInfo.hProcess,INFINITE); // ShellExecuteEx 執行的程式關閉了, 才會繼續做下去 ShowMessage('Success!'); end;
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
yu168
一般會員 發表:29 回覆:27 積分:16 註冊:2002-06-28 發送簡訊給我 |
<textarea class="delphi" rows="10" cols="60" name="code">
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile, ParamString, StartInString: string;
begin
ExecuteFile := "C:\Winrar\winrar.exe";
ParamString := PChar(' A -r -ep -df ' AnsiQuotedStr(ARCLogFileName,'"') ' ' AnsiQuotedStr(SourceFilename, '"'));
FillChar(SEInfo, SizeOf(SEInfo), 0) ;
SEInfo.cbSize := SizeOf(TShellExecuteInfo) ;
with SEInfo do begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(ExecuteFile) ;
lpDirectory := PChar(SysParam.WorkPath);
lpParameters := PChar(ParamString);
nShow := SW_SHOWNORMAL;
end; if ShellExecuteEx(@SEInfo) then
begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode) ;
until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
end
</textarea> 感謝您的相助!
剛剛找到Fishman之前的文章, 已經解決了! 我的程式碼如上給大家參考,
對照一下您的文章, 應該是一樣的做法!!
|
boson
中階會員 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |