Форум: "WinAPI";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
ВнизЭмуляция нажатия клавиши в окне. Найти похожие ветки
← →
Ламерок (2007-03-05 14:39) [0]Подскажите пожалуйста как можно программно нажать клавишу F12 в чужом окне ?
← →
Сергей М. © (2007-03-05 14:45) [1]Послать ему WM_KEYDOWN c кодом VK_F12
← →
Leonid Troyanovsky © (2007-03-05 14:50) [2]
> Ламерок (05.03.07 14:39)
> Подскажите пожалуйста как можно программно нажать клавишу
> F12 в чужом окне ?
Если чужое окно активно, то SendInput, keybd_event.
--
Regards, LVT.
← →
Ламерок (2007-03-05 15:20) [3]на
SendMessage(h,WM_KEYDOWN, VK_F12,0);
окно никак не реагирует, будь оно активно или не активно...SendInput
тоже что то не пашет, потому что окно никак не реагирует ((
← →
Leonid Troyanovsky © (2007-03-05 15:24) [4]
> Ламерок (05.03.07 15:20) [3]
> будь оно активно или не активно... SendInput тоже что то
> не пашет, потому что окно никак не реагирует ((
Показывай код и откуда посылешь.
--
Regards, LVT.
← →
Ламерок (2007-03-05 15:28) [5]Не знаю как послать
SendInput
конкретному окну, поэтому послаю просто так :var
Inp: TInput;
I: Integer;
begin
Inp.Itype := INPUT_KEYBOARD;
Inp.ki.wVk := VK_F12;
Inp.ki.dwFlags := 0;
SendInput(1, Inp, SizeOf(Inp));
Inp.Itype := INPUT_KEYBOARD;
Inp.ki.wVk := VK_F12;
Inp.ki.dwFlags := KEYEVENTF_KEYUP;
SendInput(1, Inp, SizeOf(Inp));
ЗЫ.keybd_event(VK_F12, MapVirtualKey(VK_F12, 0), 0, 0);
keybd_event(VK_F12, MapVirtualKey(VK_F12, 0), KEYEVENTF_KEYUP, 0);
Тоже не помогает.
← →
Сергей М. © (2007-03-05 15:28) [6]
> на SendMessage(h,WM_KEYDOWN, VK_F12,0); окно никак не реагирует
А обязано ?)
← →
Ламерок (2007-03-05 15:30) [7]Я пытаюсь написать некого так скажем "бота" для лентяев, чтобы не тыкать все время нужные кнопки в окне - моя программа будет их наживать сама. Но, пока ничего не получается(
← →
Ламерок (2007-03-05 15:35) [8]Помогите с решением проблемы пожалуйста)
← →
Leonid Troyanovsky © (2007-03-05 15:39) [9]
> Ламерок (05.03.07 15:28) [5]
> Не знаю как послать SendInput конкретному окну, поэтому
Она и посылет конкретному - тому, которое в данный момент
имеет фокус ввода (см. также GetForegrondWindow).
Т.е., вопрос - откуда, потому, как из обработчика кнопки
не выйдет, нужен, хотя бы, таймер.
--
Regards, LVT.
PS MapVirtualKey сейчас не пишут, т.е. 0
← →
Сергей М. © (2007-03-05 15:40) [10]
> Ламерок (05.03.07 15:30) [7]
Ты, ""ламерок", не ответил на вопрос в [6])...
← →
Ламерок (2007-03-05 15:45) [11]>Leonid Troyanovsky ©
>Она и посылет конкретному - тому, которое в данный момент
В таком случае она не работает на этом окне. Потому что я послал по таймеру и активнм окном у меня было именно то злополучное окно в которое и надо посылать...
>Сергей М. ©
>А обязано ?)
А почему не обязано ?) Все по моему правильно написано)
← →
Сергей М. © (2007-03-05 15:49) [12]
> А почему не обязано ?
А почему обязано-то ?)
Мож оно, то самое окно того самого приложения, видимым образом реагирует только на "клавишу нажал + клавишу отпустил" ?
Об этом твоя светлая голова не дотумкала, так надо понимать ?)
← →
Leonid Troyanovsky © (2007-03-05 15:50) [13]
> Ламерок (05.03.07 15:45) [11]
> >Она и посылет конкретному - тому, которое в данный момент
> В таком случае она не работает на этом окне. Потому что
> я послал по таймеру и активнм окном у меня было именно то
> злополучное окно в которое и надо посылать...
Что за окно-то? И точно ли оно было foreground?
На дельфи срабатывает? Должна форма переключаться
между текстом и формой.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2007-03-05 15:51) [14]
> Сергей М. © (05.03.07 15:49) [12]
> А почему обязано-то ?)
На SendMessage уж точно не обязано.
--
Regards, LVT.
← →
Сергей М. © (2007-03-05 15:58) [15]
> Leonid Troyanovsky © (05.03.07 15:51) [14]
?
← →
Leonid Troyanovsky © (2007-03-05 16:07) [16]
> Сергей М. © (05.03.07 15:58) [15]
WM_KEYDOWN c PostMessage еще можно как-то представить.
Но не Send.
--
Regards, LVT.
← →
Сергей М. © (2007-03-05 16:15) [17]
> Leonid Troyanovsky © (05.03.07 16:07) [16]
Ах ты вон о чем) ..
Ну да фих с ним - пусть будет асинхронно, согласен без возражений.
В дан.случае это НЕпринципиально - либо целевой обработчик дожидается KEYUP-сообщения, прежде чем что-то "чудить" на экране, либо не дожидается и творит на экране некое действо сразу по получению KEYDOWN .. Сие только автору ведомо)...
← →
Ламерок (2007-03-05 16:29) [18]>Сие только автору ведомо)...
Сие автору ведомо. Окно отказывается реагировать на эти команды, будь то PostMessage или SendMessage.
Можете на примере показать как правильно "нажимать кнопки" в чужом окне?
← →
Leonid Troyanovsky © (2007-03-05 16:32) [19]
> Ламерок (05.03.07 16:29) [18]
> Можете на примере показать как правильно "нажимать кнопки"
> в чужом окне?
Пример чужого окна в студию.
--
Regards, LVT.
← →
Сергей М. © (2007-03-05 16:41) [20]
> Ламерок (05.03.07 16:29) [18]
Ты вообще-то понимаешь разницу между "нажать", "отжать" и "нажать+отжать" ?
← →
Ламерок (2007-03-05 16:45) [21]>Ты вообще-то понимаешь разницу между
Вообще то да.
>Пример чужого окна в студию.
Каким образом пример в студию? Название окна сказать ?)
← →
Сергей М. © (2007-03-05 17:01) [22]
> Ламерок (05.03.07 16:45) [21]
> Вообще то да.
>
Вообще-то и вопрос твой по-иному тогда должен был быть задан.
← →
Ламерок (2007-03-05 17:06) [23]>Вообще-то и вопрос твой по-иному тогда должен был быть задан.
Подскажите, как можно программно эмулировать нажатия клавиш в чужом окне?
Так?
ЗЫ.
Так вы мне поможете или нет ?
← →
Сергей М. © (2007-03-05 17:11) [24]
> Ламерок (05.03.07 17:06) [23]
ЧТО тебе не понятно ?
Ведь все уже разжевано ...
← →
Leonid Troyanovsky © (2007-03-05 17:12) [25]
> Ламерок (05.03.07 16:45) [21]
> Каким образом пример в студию? Название окна сказать ?)
Название программы, окна и т.п.
Кстати, я спрашивал насчет дельфи и F12 на дизайнере.
--
Regards, LVT.
← →
Ламерок (2007-03-05 17:24) [26]>ЧТО тебе не понятно ?
>Ведь все уже разжевано ...
Мне не понятно КАК сделать так чтобы окно реагировало. Ни одним методом которым я пробовал не получилось. Покажите рабочий примерчик например...
>Название программы, окна и т.п.
Сетевая игра Lineage II. Название окна - " Lineage II ". )
← →
Leonid Troyanovsky © (2007-03-05 17:30) [27]
> Ламерок (05.03.07 17:24) [26]
> Сетевая игра Lineage II. Название окна - " Lineage II
Ну, это может быть и вовсе не окно (в интересующем нас смысле).
Попробуй натравить на него winsight / spy++ и кинь сюда
протокол происходящего при нажатии F12.
--
Regards, LVT.
← →
имя (2007-03-24 20:54) [28]Удалено модератором
← →
имя (2007-03-25 15:47) [29]Удалено модератором
← →
имя (2007-04-20 00:55) [30]Удалено модератором
← →
имя (2007-07-16 22:19) [31]Удалено модератором
← →
имя (2007-07-16 22:20) [32]Удалено модератором
← →
имя (2007-07-17 07:53) [33]Удалено модератором
← →
имя (2007-07-17 07:54) [34]Удалено модератором
← →
имя (2007-07-17 07:54) [35]Удалено модератором
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.04 c