Как программно нажать кнопку

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Всем привет! Вот этот код - if getasynckeystate(1)<>0 then отловит нажатие левой кнопки мыши, а как заставить нажать ее?

mouse_event(MOUSEEVENTF_LEFTDOWN,MOUSEEVENTF_ABSOLUTE,MOUSEEVENTF_ABSOLUTE,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,MOUSEEVENTF_ABSOLUTE,MOUSEEVENTF_ABSOLUTE,0,0);


тот код кликнет левой кнопкой мыши, но меня ща не мышь интересует, а клава )) Как с имитировать нажатие кнопки на клаве?
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Есть такие функции WinAPI, как keybd_event, mouse_event, SendInput.
Сам не пробовал, но по описанию похоже на то, что Вам нужно.

SendInput: The SendInput function synthesizes keystrokes, mouse motions, and button clicks.
mouse_event: The mouse_event function synthesizes mouse motion and button clicks.
keybd_event: The keybd_event function synthesizes a keystroke.

А, вот еще примечание для keybd_event и mouse_event:
Windows NT/2000/XP: This function has been superseded. Use SendInput instead.
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Ай, маладца! Спасибо! Вот какой код должен получится )))

keybd_event(Ord('E'), MapVirtualKey(Ord('E'), 0), 0, 0);
keybd_event(Ord('E'), MapVirtualKey(Ord('E'), 0), KEYEVENTF_KEYUP, 0);

Нажмет и отпустить клавишу Е
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Ответить