![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Romы4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 25.6.2009 Репутация: нет Всего: нет |
Делал так:
var wnd: HWND; wnd := FindWindow('notepad', nil); PostMessage(wnd, WM_KEYDOWN, VK_F1, 0); С блокнотом проходит все на ура, даже когда он не активен, не работает правда когда свернут....с другими приложениями работает токо когда они активны.....помогите плиз примером, суть задачи состоит в том чтобы эмулировать нажатие клавишь в свернутом или хотябы не в активном приложении |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
простой способ ,
считать состояние окна , запомнить , востановить и сделать его активным выполнить все что нужно и востановить каким было окно .... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Romы4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 25.6.2009 Репутация: нет Всего: нет |
это было слишком просто)))....нужно чтобы окно не вызывалось поверх остальных (всегда оставалось неактивным)
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
зачем такое?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
Есть и обходные пути. Команды меню можно эмулировать через WM_COMMAND, при этом идентификатор можно получить, подсмотрев в сканере окон (InqSoft Window Scanner умеет).
|
|||
|
||||
Romы4 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 25.6.2009 Репутация: нет Всего: нет |
это прекрасно пашет с блокнотом.....но с другими приложениями не работает....... Я сделал так как мне посоветовал Romikgy -т.е. брал фокус нужного мне окна, посылал в него необходимое нажатие клавиатуры, затем возвращал фокус текущему окну.....НО создалась новая проблема, так как мне надо постоянно с интервалом 1-5 секунд посылать нажатие клавиатуры-возникло мерцание окон из-за постоянного смены фокуса........помогите как можно от этого избавится ![]() |
||||
|
|||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
||||
|
||||
Romы4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 25.6.2009 Репутация: нет Всего: нет |
а можно подробнее про параметры SendNotifyMessage...я имею в виду цифры
|
|||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
||||
|
||||
Romы4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 25.6.2009 Репутация: нет Всего: нет |
с этим я разобрался...но все равно спасибо большое.....но в сканере я так и ненашел где он отображает горячие клавиши
Добавлено через 13 минут и 25 секунд я так понял что для горячих клавишь синтаксис такой: SendNotifyMessage(NotepadWindowHandle, WM_HOTKEY, 64, 0);.............но как сканер отображает id кнопок я не нашел |
|||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
Ничего Вы не поняли, поэтому перечитайте всю тему внимательно от начала до конца и попробуйте понять еще раз. Не выйдет - бросайте это дело.
|
|||
|
||||
Romы4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 25.6.2009 Репутация: нет Всего: нет |
Ого поммог))))....если все следовали Вашему совету и бросали на полдороги....хммм-мы бы наверное еще на ветках сидели
|
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
Romы4
Да зачем тебе горячие клавиши-то? Тем более, что они есть не у всех пунктов меню. У тебя есть идентификатор пункта меню (узнаёшь чеоез s0m Windows Scanner) и ты его программно «нажимаешь», если так можно выразиться. П. С. Скорее, мы сидели бы на ветках, если бы вопрошающий не слышал ответа. |
|||
|
||||
Romы4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 25.6.2009 Репутация: нет Всего: нет |
Ребят, спасибо вроде разобрался.....с любым окном получается кроме d3d приложения-на него фокус надо обязательно..можно конечно брать хэндл активного окна потом брать в фокус нужное d3d приложение нажимать в нем нужные клавиши и возвращать фокус на предыдущее окно-это единственный способ который я нашел....но от вызывает мерцание между окнам+пока d3d в фокусе не возможно с другим окном работать...а нужно именно так
|
|||
|
||||
0LineGate |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 17.2.2007 Где: Россия, Тула Репутация: 0 Всего: 2 |
Так и с d3d приложениями должно работать, я думаю. ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |