如何强行终止应用程序?(50分)

  • 主题发起人 主题发起人 swpihwd
  • 开始时间 开始时间
S

swpihwd

Unregistered / Unconfirmed
GUEST, unregistred user!
为何不能用 PostQuitMessage(WM_QUIT) 或 Application->Terminate()终止应用程序?
有别的办法吗?谢谢!
 
C++Builder的代码,你看看,函数名和使用方法都是一样的,uses tlhelp32
{
HANDLE m_SnapShot,hProcess;
PROCESSENTRY32 Ppe;
bool FindProc;
unsigned long pid;


Ppe.dwSize = sizeof(Ppe);

m_SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if (m_SnapShot == INVALID_HANDLE_VALUE)
{
ShowMessage("error");
}
FindProc = Process32First(m_SnapShot,&Ppe);
while (FindProc)
{
//ShowMessage(Ppe.szExeFile);
if (stricmp(Ppe.szExeFile,Edit1->Text.c_str()) == 0)
{
pid = Ppe.th32ProcessID;
ShowMessage("Find proc,pid = " + FloatToStr(Ppe.th32ProcessID));
break;
}
FindProc = Process32Next(m_SnapShot,&Ppe);
}
if((hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid)) == NULL)
{
ShowMessage("open proc error");
return ;
}

TerminateProcess(hProcess, 0xffffffff);
CloseHandle(hProcess);
}
 
为什么不行,你在Form 中放一按钮,点击一个就退出了:
procedure TForm1.Button1Click(Sender: TObject);
begin
PostQuitMessage(WM_QUIT)
end;
 
你说的两种方法,应该都可以,另外,主窗口关闭,程序也结束了,
 
Form->Close();
 
TerminateProcess(GetCurrentProcess(),0);
 
同意楼上,
在主程序中,
要想终止程序执行
如:在主窗体创建之前终止程序执行
最好就用楼上所用方法,TerminateProcess(GetCurrentProcess(),0);
Application.Terminate()不行.
 
后退
顶部