VC由进程ID获取窗口句柄的各种方
//ID--HANDLE--HWND三者之間的互相轉換
//id->句柄 ? ? hWnd = ::GetDlgItem(hParentWnd, id);
//id->指針 ? ? CWnd::GetDlgItem();
//句柄->id ? ? id = GetWindowLong(hWnd, GWL_ID);
//句柄->指針 ? ?CWnd *pWnd = CWnd::FromHandle(hWnd);
//指針->ID ? ? id = GetWindowLong(pWnd->GetSafeHwnd, GWL_ID);
//GetDlgCtrlID();
//指針->句柄 ? ?hWnd = cWnd.GetSafeHandle() or mywnd->m_hWnd;
//句柄->指針
CWnd* GetCwndByHwnd(HWND hWnd)
{
CWnd *pWnd = CWnd::FromHandle(hWnd);
return pWnd;
}
//指針->句柄
HWND GetCwndByHwnd(CWnd cWnd)
{
HWND hWnd = cWnd.GetSafeHwnd(); ?// mywnd->m_hWndreturn hWnd;
}
?
?
//通過窗口標題名殺進程
BOOL FindProcessHandleAndKill(const CString &sWndName)
{
HWND ? hWnd;
DWORD ? ProcessID;
HANDLE ? hProcess;
hWnd = ::FindWindow(NULL, sWndName);
if (hWnd == NULL)
{
return ? FALSE;
}
else
{
if (GetWindowThreadProcessId(hWnd, &ProcessID) == 0)
{
return ? FALSE;
}
else
{
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
if (hProcess == NULL)
{
return ? FALSE;
}
else
{
if (TerminateProcess(hProcess, 0))
{
return ? TRUE;
}
else
{
return ? FALSE;
}
}
}
}
}
?
?
總結
以上是生活随笔為你收集整理的VC由进程ID获取窗口句柄的各种方的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获得主窗口句柄AfxGetApp()-m
- 下一篇: VC中获取窗口句柄的各种方法