Вниз
Скачать: CL | DM;

Эмулирование нажатия комбинации клавиш CTRL+<стрелка>   Найти похожие ветки 

 
Warner   (2009-05-23 04:44) [0]

Нужно в эмулировать нажатие комбинации ctrl+<стрелка влево> в окне чужого приложения. Делаю это таким кодом:

SendMessage(h, WM_SYSCOMMAND, SC_HOTKEY, h); // h - окно нужного приложения
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_LEFT, 37, 0, 0);
keybd_event(VK_LEFT, 37, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

При этом контрол нажимается а стрелка нет. Причем если в шоткате вместо стрелки буква (напр. ctrl+R), то код работает нормально. Подскажите, в чем моя ошибка? Или быть может есть какие-то альтернативные константы или коды для обозначения таких сочетаний клавиш?


 
KilkennyCat ©   (2009-05-24 01:36) [1]


> в чем моя ошибка?

37
Ты уверен, что хочешь использовать аппаратный код? И что делаешь это правильно?


 
KilkennyCat ©   (2009-05-24 01:39) [2]

И вообще:
keybd_event Function
Windows NT/2000/XP/Vista:This function has been superseded. Use SendInput instead.


 
Warner   (2009-05-24 01:45) [3]


> Ты уверен, что хочешь использовать аппаратный код?

а как еще это можно сделать?

> И что делаешь это правильно?

если в шоткате буквы вместо стрелок, то все получается, поэтому склонен думать что это делается именно так


 
KilkennyCat ©   (2009-05-24 02:34) [4]


> если в шоткате буквы вместо стрелок

буквы не требуют KEYEVENTF_EXTENDEDKEY


 
KilkennyCat ©   (2009-05-24 02:35) [5]

http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.005 c
4-1243039481
Warner
2009-05-23 04:44
2010.12.26
Эмулирование нажатия комбинации клавиш CTRL+<стрелка>


15-1284430430
AlexDn
2010-09-14 06:13
2010.12.26
PayPal


8-1208708462
NaRuTo
2008-04-20 20:21
2010.12.26
Полупрозрачность


15-1284462862
{RASkov}
2010-09-14 15:14
2010.12.26
USB Flash не устанавливаются ОСью как положено


6-1232051577
nixstill
2009-01-15 23:32
2010.12.26
Открытие необходимой группы в локальной сети (UNC)




   Наверх