掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecuteで終了を待つ方法は? (ID:12074)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以下はボタン(Button1)をクリックするとメモ帳が起動され、ユーザーがそのメモ帳を終了するまで待機する例です。 参考になるでしょうか? procedure TForm1.Button1Click( Sender: TObject); var SXInfo: TShellExecuteInfo; begin with SXInfo do//TShellExecuteInfo構造体の初期化 begin cbSize := SizeOf( SXInfo); fMask := SEE_MASK_NOCLOSEPROCESS;//これがないと終了待ち出来ない Wnd := Application.Handle; lpVerb := 'open'; lpFile := PChar( 'notepad.exe'); lpParameters := Nil; lpDirectory := Nil; nShow := SW_SHOW; end; ShellExecuteEx( @SXInfo); Button1.Enabled := False;//メモ帳がいくつも起動されるとまずいので... //起動したアプリケーションの終了待ち while WaitForSingleObject( SXInfo.hProcess, 0) = WAIT_TIMEOUT do Application.ProcessMessages; ShowMessage( '終わったよ!'); Button1.Enabled := True; end; 元はhttp://www.asahi-net.or.jp/~GV4J-SGUR/narik/stp001.htm#SHGetSpecialFolderLocationです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.