强制结束进程! ( 积分: 50 )

  • 主题发起人 主题发起人 foxe
  • 开始时间 开始时间
F

foxe

Unregistered / Unconfirmed
GUEST, unregistred user!
用ShellExecute()打开一个应用程序,应用程序会弹出一个Messagebox,此时正常的关闭方法是应答这个Messagebox且选择是为保存等才能退出.但因特殊要求,需要强制关闭此程序,还不管它处于何状态.<br>试用TerminateProcess(AHWnd,0)这样好像不能结束,其中AHWnd是需关闭程序主窗口句柄,问有何方法,另TerminateProcess的第二个参数ExitCode是如何得到,随便填吗?
 
用ShellExecute()打开一个应用程序,应用程序会弹出一个Messagebox,此时正常的关闭方法是应答这个Messagebox且选择是为保存等才能退出.但因特殊要求,需要强制关闭此程序,还不管它处于何状态.<br>试用TerminateProcess(AHWnd,0)这样好像不能结束,其中AHWnd是需关闭程序主窗口句柄,问有何方法,另TerminateProcess的第二个参数ExitCode是如何得到,随便填吗?
 
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3053035
 
const<br> &nbsp;PROCESS_TERMINATE=$0001;<br>var<br> &nbsp;ExeFileName: String;<br> &nbsp;ContinueLoop: BOOL;<br> &nbsp;FSnapshotHandle: THandle;<br> &nbsp;FProcessEntry32: TProcessEntry32;<br>begin<br> &nbsp;ExeFileName := 你要结束的程序名称<br> &nbsp;FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);<br> &nbsp;FProcessEntry32.dwSize := Sizeof(FProcessEntry32);<br> &nbsp;ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);<br> &nbsp;while integer(ContinueLoop) &lt;&gt; 0 do<br> &nbsp;begin<br> &nbsp; &nbsp;if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =<br> &nbsp; &nbsp; &nbsp; UpperCase(ExeFileName))<br> &nbsp; &nbsp;or (UpperCase(FProcessEntry32.szExeFile) =<br> &nbsp; &nbsp; &nbsp; UpperCase(ExeFileName))) then<br> &nbsp; &nbsp; &nbsp; TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FProcessEntry32.th32ProcessID), 0);<br> &nbsp; &nbsp;ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);<br> &nbsp;end;<br>end;
 
多人接受答案了。
 
后退
顶部