sawamail
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору лучше не так OSVERSIONINFO osver; osver.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&osver); if(osver.dwPlatformId==VER_PLATFORM_WIN32_NT) { // Install the low-level keyboard & mouse hooks m_hhkLowLevelKybd=SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,AfxGetInstanceHandle(),0); m_hhkLowLevelMouse=SetWindowsHookEx(WH_MOUSE_LL ,LowLevelMouseProc,AfxGetInstanceHandle(),0); } .............................. а в обработчиках делай чё хочешь например LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam,LPARAM lParam) { BOOL fEatKeystroke = FALSE; if(nCode==HC_ACTION) { switch (wParam) { case WM_KEYDOWN: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_SYSKEYUP: PKBDLLHOOKSTRUCT p =(PKBDLLHOOKSTRUCT)lParam; if(p->vkCode=='R' && p->flags & LLKHF_ALTDOWN) Exit(); // мое или нет? if(pDlg->m_hWnd!=::GetActiveWindow()) return 1; if(p->vkCode==VK_LWIN || p->vkCode==VK_RWIN || p->vkCode==VK_APPS) fEatKeystroke=TRUE; else fEatKeystroke= ((p->vkCode==VK_TAB) && ((p->flags & LLKHF_ALTDOWN)!=0)) || ((p->vkCode==VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN)!=0)) || ((p->vkCode==VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)); break; } } return(fEatKeystroke ? 1 : CallNextHookEx(NULL,nCode,wParam,lParam)); } LRESULT CALLBACK LowLevelMouseProc(int nCode,WPARAM wParam,LPARAM lParam) { BOOL fEatMouse=FALSE; if(nCode==HC_ACTION) { switch (wParam) { case WM_LBUTTONDOWN: case WM_LBUTTONUP: case WM_RBUTTONDOWN: case WM_RBUTTONUP: PMSLLHOOKSTRUCT p =(PMSLLHOOKSTRUCT)lParam; DWORD ID=::GetWindowThreadProcessId(pDlg->m_hWnd,NULL); DWORD wID=::GetWindowThreadProcessId(::WindowFromPoint(p->pt),NULL); // мое или нет if(ID==wID) { pDlg->GetDlgItem(IDC_TITLE)->SetWindowText("Ты попал."); } else { fEatMouse=TRUE; pDlg->GetDlgItem(IDC_TITLE)->SetWindowText("Ты не попал."); } break; } } return(fEatMouse ? 1 : CallNextHookEx(NULL, nCode, wParam,lParam)); } | Всего записей: 1439 | Зарегистр. 22-04-2002 | Отправлено: 11:36 08-08-2003 | Исправлено: sawamail, 11:38 08-08-2003 |
|