Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: N0mad (18.09.2009 в 11:58) Есть программа которая эмулирует нажатие клавиш
void CfgdfgDlg::OnBnClickedButton1() { int Len, DropLen; CString buffDroped; WORD w; //Строка которую мы будем эмулировать buffDroped = TEXT("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!"); DropLen = buffDroped.GetLength(); for (int i=0;i<DropLen;i++) { Len = buffDroped.GetLength(); if (Len>i) { w = VkKeyScan(buffDroped[i]); if ((HIBYTE(w) != 0xFF) && (LOBYTE(w) != 0xFF)) { if (HIBYTE(w)) { keybd_event(VK_SHIFT, 0, 0, 0); //Sleep(50); } keybd_event(LOBYTE(w),0,0,0); keybd_event(LOBYTE(w),0,KEYEVENTF_KEYUP,0); if (HIBYTE(w)) { keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); } } } } }
HHOOK hKeyHook = NULL; WORD GetSymbolFromVK(WPARAM wParam, UINT scanecode) { BYTE btKeyState[256]; HKL hklLayout = GetKeyboardLayout(0); WORD Symbol = NULL; GetKeyboardState(btKeyState); if ((ToAsciiEx(wParam, scanecode, btKeyState, &Symbol, 0, hklLayout) == 1) && (GetKeyState(VK_CONTROL) >= 0) && (GetKeyState(VK_MENU) >= 0)) return Symbol; return -1; } LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { WORD wc = 0; if (nCode >= HC_ACTION) { //Если действие было - нажатие кнопочки if (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN) { //Получаем символ if ((wc = GetSymbolFromVK(((PKBDLLHOOKSTRUCT)lParam)->vkCode, ((PKBDLLHOOKSTRUCT)lParam)->scanCode)) != -1) { //Проверяем если он печатемый if (iswprint(wc)) { //обработка символа } } } } return CallNextHookEx(hKeyHook, nCode, wParam, lParam); } BOOL SetKeyboardHook(BOOL Hook) { HMODULE hInstance = GetModuleHandle(NULL); if (Hook) { hKeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardProc, hInstance, NULL); return (hKeyHook != NULL); } else { UnhookWindowsHookEx(hKeyHook); hKeyHook = NULL; return (hKeyHook != NULL); } }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: