Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2012, 10:52   #1
xaero93
Пользователь
 
Регистрация: 27.02.2009
Сообщений: 53
По умолчанию Имитация нажатия клавиши

Имеется приложение, в котором нужно прощелкать некотурую последовательность клавиш виртуально. Не онлайн игрушка, а обычное приложение. То есть никакой защиты от таких нажатий нет.Код Delphi
Код:
keybd_event(VK_Tab , 0, 0,0);
Keybd_event(VK_Tab,0,KEYEVENTF_KEYUP, 0);
keybd_event(VK_Numlock , 0, 0,0);
Keybd_event(VK_Numlock,0,KEYEVENTF_KEYUP, 0);
keybd_event(VK_Decimal , 0, 0,0);
Keybd_event(VK_Decimal,0,KEYEVENTF_KEYUP, 0);

Так вот. Нужно нажать либо Num0 либо точку на num панели. Пробовал и то и другое, нажимая или не нажимая Numlock. Нужное действие не совершается. Имитация нажатия клавиши таб и других работает прекрасно. В ручную при нажатии и 0, и "." необходимое действие совершается. Кто может подсказать, в какую сторону копать?
З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
xaero93 вне форума Ответить с цитированием
Старый 25.11.2012, 11:06   #2
studen
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 88
По умолчанию

Не знаю даже, в чем штука, если такое и при нажатом NumLock и при выключенном, могу только посоветовать в цикле каком-нибудь все коды прогнать и посмотреть, что будет при разных кодах. Скорее всего, с NumLock не связано это, но на всякий случай попробуй клавиши Ins и Del.
studen вне форума Ответить с цитированием
Старый 25.11.2012, 11:26   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от xaero93 Посмотреть сообщение
в какую сторону копать?
KEYEVENTF_EXTENDEDKEY пробовали?
waleri вне форума Ответить с цитированием
Старый 25.11.2012, 11:45   #4
xaero93
Пользователь
 
Регистрация: 27.02.2009
Сообщений: 53
По умолчанию

Непомогает. Да и вроде как сканкоды у num клавиш не двойные.
вот что имеется пока
Код:
keybd_event(VK_Tab , 0, 0,0);
Keybd_event(VK_Tab,0,KEYEVENTF_KEYUP, 0);
keybd_event(VK_Numlock , 0, 0,0);
Keybd_event(VK_Numlock,0,KEYEVENTF_KEYUP, 0);
keybd_event(VK_numpad0 ,MapVirtualKey(VK_numpad0, 0),0,0);
Keybd_event(VK_Numpad0,MapVirtualKey(VK_numpad0, 0),KEYEVENTF_KEYUP, 0);
keybd_event(VK_Decimal ,MapVirtualKey(VK_DECIMAL, 0),Keyeventf_extendedkey,0);
Keybd_event(VK_Decimal,MapVirtualKey(VK_DECIMAL, 0),KEYEVENTF_KEYUP, 0);
З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
xaero93 вне форума Ответить с цитированием
Старый 25.11.2012, 14:19   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Вставьте слипы...
p51x вне форума Ответить с цитированием
Старый 25.11.2012, 15:06   #6
xaero93
Пользователь
 
Регистрация: 27.02.2009
Сообщений: 53
По умолчанию

Код:
keybd_event(VK_Tab , 0, 0,0);
Keybd_event(VK_Tab,0,KEYEVENTF_KEYUP, 0);
//keybd_event(VK_Numlock , 0, 0,0);
//Keybd_event(VK_Numlock,0,KEYEVENTF_KEYUP, 0);
sleep(500);
keybd_event(VK_numpad0 ,MapVirtualKey(VK_numpad0, 0),0,0);
sleep(500);
Keybd_event(VK_Numpad0,MapVirtualKey(VK_numpad0, 0),KEYEVENTF_KEYUP, 0);
Sleep(500);
keybd_event(VK_Decimal ,MapVirtualKey(VK_DECIMAL, 0),Keyeventf_extendedkey,0);
sleep(500);
Keybd_event(VK_Decimal,MapVirtualKey(VK_DECIMAL, 0),KEYEVENTF_KEYUP, 0);
Непомогло.... Каким еще способом можно виртуально нажать клавишу?
З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
xaero93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация нажатия клавиш xaero93 Помощь студентам 5 28.10.2012 16:40
имитация нажатия клавиши megostudent Общие вопросы Delphi 7 25.09.2011 10:47
Имитация нажатия клавиши Х (русской) Melphin Свободное общение 2 04.02.2010 12:58
Имитация нажатия на f1 ma000123 Общие вопросы C/C++ 4 02.02.2010 19:17