掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecuteで実行したプロセスを終了させるには (ID:8623)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません、上のコードは流用したのでちょっと変です。 以下のようにします。Button1Click で EmEditor が立ち上がり、 Button2Click で閉じます。 public hProcess:THandle; end; var Form1: TForm1; implementation {$R *.DFM} uses ShellAPI; function ExecAndGivehProcess(FileOrURL:string):THandle; var sei:TShellExecuteInfo; begin FillChar(sei,SizeOf(TShellExecuteInfo),#0); sei.cbSize := SizeOf(TShellExecuteInfo); sei.fMask := SEE_MASK_NOCLOSEPROCESS; sei.Wnd := Form1.Handle; sei.lpVerb := 'open'; sei.lpFile := PChar(FileOrURL); sei.lpDirectory := PChar(ExtractFilePath(Application.Exename)); sei.nShow := SW_SHOWNORMAL; if ShellExecuteEx(@sei) then result := sei.hProcess else result := 0; end; procedure TForm1.Button1Click(Sender: TObject); begin hProcess := ExecAndGivehProcess('C:\Test.txt'); end; procedure TForm1.Button2Click(Sender: TObject); begin if hProcess <> 0 then begin TerminateProcess(hProcess,0); CloseHandle(hProcess); hProcess := 0; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.