Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 181
от 27.08.2005, 22:14

Администратор:Калашников О.А.
В рассылке:Подписчиков: 190, Экспертов: 27
В номере:Вопросов: 1, Ответов: 2


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное