c語言獲取窗口句柄
A. c語言找到窗口句柄,然後進行後台滑鼠鍵盤操作
窗口處理函數中加入WM_MOUSEMOVE消息,然後編寫滑鼠消息處理函數OnMouseMove,當然,滑鼠消息不止這一個,具體請查看msdn
鍵盤:添加WM_KEYDOWN/WM_KEYUP/WM_CHAR消息,這三個消息的具體請查看msdn,然後就可以編寫消息消息處理函數了!
B. C語言中的findwindow()函數參數是什麼
1.函數說明:FindWindow,Win32 API函數。
FindWindow函數返回與指定字元串相匹配的窗口類名或窗口名的最頂層窗口的窗口句柄。這個函數不會查找子窗口。
2.函數原型:
HWND FindWindow( LPCTSTR lpClassName,
LPCTSTR lpWindowName
);3.參數說明:
lpClassName
指向一個以null結尾的、用來指定類名的字元串或一個可以確定類名字元串的原子。如果這個參數是一個原子,那麼它必須是一個在調用此函數前已經通過GlobalAddAtom函數創建好的全局原子。這個原子(一個16bit的值),必須被放置在lpClassName的低位位元組中,lpClassName的高位位元組置零。
lpWindowName
指向一個以null結尾的、用來指定窗口名(即窗口標題)的字元串。如果此參數為NULL,則匹配所有窗口名。
4返回值:
如果函數執行成功,則返回值是擁有指定窗口類名或窗口名的窗口的句柄。
如果函數執行失敗,則返回值為 NULL 。可以通過調用GetLastError函數獲得更加詳細的錯誤信息。5.使用示例:HWND hWndRcv = ::FindWindow(NULL,"123");if(hWndRcv != NULL){ AfxMessageBox("找到123窗口");}
C. 求助:C語言如何輸出句柄
句柄就是一種資源的序號,一般是個無符號整數而已,比如文件句柄,就是系統提供一組可以打開文件的數據結構(實際上是結構數組),句柄就是數組下標。
所謂輸出句柄,你可以將句柄當作函數調用的返回值,或者列印出來看也不是不可以。
D. c語言findwindows怎麼用的
Find Window的函數原型:
FindWindow(
lpClassName, {窗口的類名}
lpWindowName: PChar {窗口的標題}
): HWND; {返回窗口的句柄; 失敗返回 0}
C語言測試代碼(假如要查系統自帶的 放大鏡 窗口,前提是已經打開放大鏡窗口):
HWND h = FindWindow(NULL, "放大鏡");
if(0 == h)
{
ShowMessage("can't find 放大鏡");
}
else
{
ShowMessage(IntToStr(h)); //查找到窗口,並且列印出該窗口的句柄
}
E. C語言中如何獲得當前進程句柄,謝謝!
DWORD PID;
PID = GetProcessPID(L"test.exe");
//獲取進程pid函數
DWORD GetProcessPID(LPCTSTR pName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
BOOL fOk;
for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)){
if (!_tcsicmp(pe.szExeFile, pName)) {
CloseHandle(hSnapshot);
return pe.th32ProcessID;
}
}
return NULL;
}
//由進程pid獲取進程句柄,置頂
HWND hh = GetProcessTopWindows(PID);
HWND GetProcessTopWindows(DWORD dwPID){
count = 0;
EnumWindows((WNDENUMPROC)EnumWndProc, (LPARAM)dwPID);
if(count > 0) {
//cout << "窗口句柄是:" << nhWnd[count -1] << endl;//輸出句柄,可用spy++工具核對
return (nhWnd[count -1]);
}
return NULL;
}
別忘了添加對應頭文件。