![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Эмуляция нажатия клавиши в окне.
Ламерок © (2007-03-05 14:39:00)Подскажите пожалуйста как можно программно нажать клавишу F12 в чужом окне ?
Сергей М. (2007-03-05 15:58:00) [21]
> Leonid Troyanovsky © (05.03.07 15:51) [14]
?
Leonid Troyanovsky (2007-03-05 15:51:00) [22]
> Сергей М. © (05.03.07 15:49) [12]
> А почему обязано-то ?)
На SendMessage уж точно не обязано.
--
Regards, LVT.
Leonid Troyanovsky (2007-03-05 15:50:00) [23]
> Ламерок (05.03.07 15:45) [11]
> >Она и посылет конкретному - тому, которое в данный момент
> В таком случае она не работает на этом окне. Потому что
> я послал по таймеру и активнм окном у меня было именно то
> злополучное окно в которое и надо посылать...
Что за окно-то? И точно ли оно было foreground?
На дельфи срабатывает? Должна форма переключаться
между текстом и формой.
--
Regards, LVT.
Сергей М. (2007-03-05 15:49:00) [24]
> А почему не обязано ?
А почему обязано-то ?)
Мож оно, то самое окно того самого приложения, видимымобразом реагирует только на "клавишу нажал + клавишу отпустил" ?
Об этом твоя светлая голова не дотумкала, так надо понимать ?)
Ламерок (2007-03-05 15:45:00) [25]>Leonid Troyanovsky ©
>Она и посылет конкретному - тому, которое в данный момент
В таком случае она не работает на этом окне. Потому что я послал по таймеру и активнм окном у меня было именно то злополучное окно в которое и надо посылать...
>Сергей М. ©
>А обязано ?)
А почему не обязано ?) Все по моему правильно написано)
Сергей М. (2007-03-05 15:40:00) [26]
> Ламерок (05.03.07 15:30) [7]
Ты, ""ламерок", не ответил на вопрос в [6])...
Leonid Troyanovsky (2007-03-05 15:39:00) [27]
> Ламерок (05.03.07 15:28) [5]
> Не знаю как послать SendInput конкретному окну, поэтому
Она и посылет конкретному - тому, которое в данный момент
имеет фокус ввода (см. также GetForegrondWindow).
Т.е., вопрос - откуда, потому, как из обработчика кнопки
не выйдет, нужен, хотя бы, таймер.
--
Regards, LVT.
PS MapVirtualKey сейчас не пишут, т.е. 0
Ламерок (2007-03-05 15:35:00) [28]Помогите с решением проблемы пожалуйста)
Ламерок (2007-03-05 15:30:00) [29]Я пытаюсь написать некого так скажем "бота" для лентяев, чтобы не тыкать все время нужные кнопки в окне - моя программа будет их наживать сама. Но, пока ничего не получается(
Сергей М. (2007-03-05 15:28:00) [30]
> на SendMessage(h,WM_KEYDOWN, VK_F12,0); окно никак не реагирует
А обязано ?)
Ламерок (2007-03-05 15:28:00) [31]Не знаю как послать
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);
Тоже не помогает.
Leonid Troyanovsky (2007-03-05 15:24:00) [32]
> Ламерок (05.03.07 15:20) [3]
> будь оно активно или не активно... SendInput тоже что то
> не пашет, потому что окно никак не реагирует ((
Показывай код и откуда посылешь.
--
Regards, LVT.
Ламерок (2007-03-05 15:20:00) [33]на
SendMessage(h,WM_KEYDOWN, VK_F12,0);окно никак не реагирует, будь оно активно или не активно...SendInputтоже что то не пашет, потому что окно никак не реагирует ((
Leonid Troyanovsky (2007-03-05 14:50:00) [34]
> Ламерок (05.03.07 14:39)
> Подскажите пожалуйста как можно программно нажать клавишу
> F12 в чужом окне ?
Если чужое окно активно, то SendInput, keybd_event.
--
Regards, LVT.
Сергей М. (2007-03-05 14:45:00) [35]Послать ему WM_KEYDOWN c кодом VK_F12