终止进程运行的方法
终止进程运行的方法
1.
CWinApp* pWinApp = AfxGetApp();
if (NULL != pWinApp)
{
CWnd *pWnd = pWinApp->GetMainWnd();
if (NULL != pWnd)
{
::PostMessage(pWnd->m_hWnd, WM_CLOSE, 0, 0);
::DestroyWindow(pWnd->m_hWnd);
}
}
2.
// 使用ExitProcess()结束进程
3.
// 使用TerminateProcess()结束进程
int CStaticFunc::KillProcess(LPCSTR pszClassName, LPCSTR pszWindowTitle)
{
HANDLE hProcessHandle;
ULONG nProcessID;
HWND TheWindow;
TheWindow = ::FindWindow( NULL, pszWindowTitle );
::GetWindowThreadProcessId( TheWindow, &nProcessID );
hProcessHandle = ::OpenProcess( PROCESS_TERMINATE, FALSE, nProcessID );
return ::TerminateProcess( hProcessHandle, 4 );
}
// 获取当前进程ID号
DWORD dwProcessID = ::GetCurrentProcessId();
// 根据进程ID返回对象句柄
HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessID);
::TerminateProcess(hProcess,0); //根据对象句柄结束进程
CloseHandle(hProcess);
4.
exit(0);
5.
AfxPostQuitMessage(ID_APP_EXIT);