Вопрос № 25186: товарищи!
как сделать какому-то приложению програмное нажатие клавиши на клавиатуре? то есть мне нужно, чтобы моя программа заставляла стороннее приложение реагировать так, как будто в нем нажали клавишу F12...
заранее благодарю...
Вопрос № 25.186
товарищи!
как сделать какому-то приложению програмное нажатие клавиши на клавиатуре? то есть мне нужно, чтобы моя программа заставляла стороннее приложение реагировать так, как будто в нем нажали клавишу F12...
заранее благодарю
Отправлен: 22.08.2005, 22:13
Вопрос задал: yatagan (статус: 3-ий класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ddeedd
Здравствуйте, yatagan!
Можно эмульнуть нажатие на кнопку клавы - перед этим надо передать фокус клавы на стороннее приложение через SetForegroundWindow:
HWND h;
h=GetForegroundWindow(); // запоминаете текущ. активное окно
SetForegroundWindow(hwnd); // фокус на окно проги (hwnd вам надо определить каким-либо образом)
keybd_event(VK_F12, 0x58, 0, 0); // эмулирует нажатие на F12
keybd_event(VK_F12, 0x58, KEYEVENTF_KEYUP, 0); // эмулирует отпускание F12
SetForegroundWindow(h); // фокус обратно
Если вам всегда надо в текущем окне эмулировать кнопки, то можете на foregroundы забить.
Приложение:
Ответ отправил: Ddeedd (статус: 4-ый класс)
Отправлен: 23.08.2005, 00:58 Оценка за ответ: 5 Комментарий оценки: файно дякую тАварІщ!
Отвечает: Ерёмин Андрей
Здравствуйте, yatagan!
Воспользуйтесь функцией keybd_event(). Она имитирует нажатие клавиш клавиатуры. Сначала вам нужно нажать F12, а затем отпустить. Обязательно имитируйте событие OnKeyUp. Работать будет и без него, но где-нибудь когда-нибудь может и заглючить. Функция проста в обращении - только передайте какую клавишу нажать и состояние нажатия. Всё остальное - нули. Удачи!
--------- Мышка побежала, xвостиком махнула - cервер упал...
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 23.08.2005, 08:55 Оценка за ответ: 5