|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Эмуляция ввода с клавиатуры или клик мышки на кнопку в неактивном окне |
|
[решено] Эмуляция ввода с клавиатуры или клик мышки на кнопку в неактивном окне
|
Новый участник Сообщения: 14 |
В общем следующая проблема, решил вернуться к некогда заброшенному проекту, столкнулся со следующей проблемой. Имеем 2 абсолютно одинаковых окна (Title, Class одинаковые, различаются только положением и Handle ( что это такое?никак не разберусь...) одно активное, второе соответственно нет . Можно ли как-нибудь из активного посылать в неактивное нажатие клавиши, к примеру "{DELETE}" или зная координаты кнопки ( кнопка не как Class, а просто кусок окна, в Atoit Window Info никак не определяется) нажать на нее не активируя окно ? Если можно , примеры дайте, пожалуйста. Нашел инфу что через ControlSend можно как-то, но не знаю как заставить посылать именно в неактивное, не знаю как заставить различать активное от неактивного.... Заранее спасибо!
|
|
Отправлено: 03:44, 27-02-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Иск:
Цитата Иск:
|
||
Отправлено: 05:07, 27-02-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Цитата amel27:
То есть, если окно нельзя идентифицировать, остается только посылать мышку в нужные координаты и кликать, делая тем самым неактивное окно активным? Больше никаких вариантов нет? Так и не понял что такое этот Handle (В Atoit Window Info 2 окна различаются только в этом параметре, который при каждом запуске меняется, но у двух окон всегда разный ) Может можно сделать идентификацию по этому параметру? К примеру гружу окно №1 ,считываю и записываю его Handle ( уж не знаю как, правда), потом гружу окно № 2, делаю тоже самое. Получится у меня 2 уникальных окна. Если я буду знать куда точно посылать текст, можно ли будет посылать в неактивное окно? В общем все это теория и наверно глупо со стороны смотрится ![]() |
|
Отправлено: 13:32, 27-02-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Иск:
Цитата Иск:
$aWinList = WinList("[CLASS:Тут класс окна]") For $i = 1 To $aWinList[0][0] If Not WinActive($aWinList[$i][1]) Then ;Тут кликаем по кнопке WinActivate($aWinList[$i][1]) _ControlClickEx($aWinList[$i][1], "", "Main", 150, 100) ;150x100 это координаты элемента (кнопки) в окне, см. с Au3InfoTool ExitLoop EndIf Next Func _ControlClickEx($sTitle, $sText = "", $sButton = "Main", $iCtrl_X_Coord = 0, $iCtrl_Y_Coord = 0) Local $aWin_Pos = WinGetPos($sTitle, $sText) Local $aWin_ClientSize = WinGetClientSize($sTitle, $sText) Local $iBorder_Size = $aWin_Pos[2] - $aWin_ClientSize[0] Local $iCaption_Size = $aWin_Pos[3] - $aWin_ClientSize[1] Local $aOld_Mouse_Pos = MouseGetPos() MouseClick($sButton, $aWin_Pos[0] + $iCtrl_X_Coord + $iBorder_Size, $aWin_Pos[1] + $iCtrl_Y_Coord + $iCaption_Size, 1, 0) MouseMove($aOld_Mouse_Pos[0], $aOld_Mouse_Pos[1], 0) EndFunc |
||
------- Последний раз редактировалось Creat0R, 28-02-2009 в 12:29. Отправлено: 19:56, 27-02-2009 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Иск:
Цитата Creat0R:
|
|||
Отправлено: 05:42, 28-02-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата:
Цитата:
![]() |
||
------- Отправлено: 12:30, 28-02-2009 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как на AutoIt заблокировать кнопку CTRL или ALT...или отключить диспетчер задач? | Fraks | AutoIt | 12 | 02-02-2010 11:51 | |
Как сделать двойной клик на объекте, без мышки? | Twix1124 | AutoIt | 2 | 26-07-2009 21:48 | |
[решено] как перехватить клик мышки? | proxy | AutoIt | 7 | 21-03-2009 11:13 | |
Загрузка - эмуляция p\s2 клавиатуры | neoris | Microsoft Windows 2000/XP | 0 | 04-03-2008 18:40 | |
[решено] Язык ввода по умолчанию в окне логона | sPave | Microsoft Windows NT/2000/2003 | 5 | 30-03-2007 13:43 |
|