我想用 TerminateProcess终止其他进程,代码如下:
HWND h=FindWindow(NULL, "我的程序");
DWORD m_proId;
m_proId=0;
m_proId = GetWindowThreadProcessId(h,NULL);
TerminateProcess(h,m_proId);
编译没有错误,可是终止不了“我的程序”,是什么问题呢?
HWND h=FindWindow(NULL, "我的程序");
DWORD m_proId;
m_proId=0;
m_proId = GetWindowThreadProcessId(h,NULL);
TerminateProcess(h,m_proId);
编译没有错误,可是终止不了“我的程序”,是什么问题呢?
不是窗口句柄
DWORD m_proId;
m_proId=0;
m_proId = GetWindowThreadProcessId(h,NULL);
HANDLE hProcess = OpenProcess( PROCESS_TERMINATE, FALSE, m_proId );
TerminateProcess(hProcess,m_proId);
这样吗?还是不行啊
if(!h)
{
::MessageBox(NULL, "FindWindow Fail", "", 0);
return;
}
DWORD m_proId;m_proId=0;
m_proId = GetWindowThreadProcessId(h,NULL);if(!m_proId)
{
::MessageBox(NULL, "GetWindowThreadProcessId Fail", "", 0);
return;
}
HANDLE hProcess = OpenProcess( PROCESS_TERMINATE, FALSE, m_proId );
if(!hProcess)
{
::MessageBox(NULL, "OpenProcess Fail", "", 0);
return;
}
TerminateProcess(hProcess,0);2点建议
1、DWORD m_proId;//变量最好不要这样定义,m_proId会让人误以为是成员变量的
2、多调试,多用MessageBox、printf、OutputDebugStirng、GetLastError