Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   SendMessage() win API (http://forum.oszone.net/showthread.php?t=66640)

lcat 02-06-2006 15:00 445636

SendMessage() win API
 
Как послать комбинацию из двух клавиш.
То есть 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 445670

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

XCodeR 02-06-2006 21:51 445788

Два варианта:

В 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 445814

Спасибо ребята, буду пробывать.


Время: 05:20.

Время: 05:20.
© OSzone.net 2001-