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

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

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

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

Выпуск № 655
от 24.11.2007, 12:05

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


Вопрос № 110119: Здравствуйте эксперты вопрос такой как из VB симулировать нажатие клавиш на клавиатуре для управления другой программой...

Вопрос № 110.119
Здравствуйте эксперты
вопрос такой как из VB симулировать нажатие клавиш на клавиатуре для управления другой программой
Отправлен: 19.11.2007, 11:57
Вопрос задал: Севрюков Евгений Валериевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PsySex
Здравствуйте, Севрюков Евгений Валериевич!
Существует комманда SendKeys, которая посылает нажатие клавиши активному окну. Чтоб сделать окно активным есть команда AppActivate IDproc.
Для этого нам нужно знать ID процесса. Также вместо ID процесса можно указать заголовок окна приложения в виде строки.
Если мы сами запускаем прогу, то
=================
IDproc = Shell("C:myproga.exe", vbNormalFocus)
AppActivate IDproc, True
SendKeys "z"
=================
Нажали клавишу Z :-)
---------
Bom Shankar!
Ответ отправил: PsySex (статус: Практикант)
Ответ отправлен: 19.11.2007, 20:16

Отвечает: HookEst
Здравствуйте, Севрюков Евгений Валериевич!
В принципе если после Shell сделать небольшую задержку, то и cmd окно получит фокус через AppActivate:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
...
IDproc = Shell("cmd", vbNormalFocus)
Sleep 100
AppActivate IDproc, True
SendKeys "z"
...

но фокус ввода такая неустойчивая вещь, что в приложении вариант с непосредственной отправкой сообщений WM_CHAR окну приложения, не обязательно активному. GetWinHandle - взял из MSDN. Запуск - Sub t
Успехов.

Приложение:

Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 21.11.2007, 07:22


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.63 от 22.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное