Войти

Показать полную графическую версию : SendMessage() win API


lcat
02-06-2006, 15:00
Как послать комбинацию из двух клавиш.
То есть Ctrl + Q, либо другую комбинацию.

SendMessage(hnd, WM_KEYDOWN, VK_CONTROL, 1);
SendMessage(hnd, WM_KEYDOWN, $51, 1);
SendMessage(hnd, WM_KEYUP, $51, 1);
SendMessage(hnd, WM_KEYUP, VK_CONTROL, 1);
Это не работает :(

Что-нибуть посоветуйте.
Спасибо.

pva
02-06-2006, 16:07
И не должно! Как проверять нажатие клавиш будешь? GetKeyState(). Поэтому AttachThreadInput и SetKeyState, а потом SendMessage(hwnd, WM_KEYDOWN, 'Q', 0)

XCodeR
02-06-2006, 21:51
Два варианта:

В 9x:
BYTE KeyboardState[256];
GetKeyboardState(KeyboardState);
KeyboardState[VK_NUMLOCK] = KeyboardState[VK_NUMLOCK] ^ 1;
SetKeyboardState(KeyboardState);

В NT/2000/XP :
keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 );
keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);

lcat
03-06-2006, 00:11
Спасибо ребята, буду пробывать.




© OSzone.net 2001-2012