|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Управление клавиатуры/мышки в фоновое приложение (чтоб не влияло на активное приложе) |
|
Управление клавиатуры/мышки в фоновое приложение (чтоб не влияло на активное приложе)
|
Пользователь Сообщения: 114 |
Управление нажатием кнопок клавиатуры и мышки, передвижение курсора в активном приложении это легко, а как быть со свернутым приложением. Несколько полезных решений для игр было сделано благодаря хорошему гайду .chm, офф форуму и oszone форуму.
Но как передовать нажите/передвижение мышки на фоновое приложение так и не нашел - возможно-ли? Задача: Онлайн Игра свернута нажатием "кнопкой Windows" или "Alt+tab" и там по центру эккрана происходят клик мышки Подскажите пожалста, если можно приведите пример кода или описание функций... |
|
Отправлено: 19:35, 26-05-2009 |
Пользователь Сообщения: 114
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 16:22, 27-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать Есть ещё фишка, что некоторые игры в свёрнутом состоянии вообще на сообщения не реагируют. Точнее реагируют, но ничего не делают)))
|
------- "Что мы думаем, знаем или во что верим в конце концов не так уж и важно. Важно лишь то, что мы делаем." Джон Раскин
Отправлено: 17:15, 27-05-2009 | #3 |
Пользователь Сообщения: 114
|
Профиль | Сайт | Отправить PM | Цитировать Хадл окна в корейских шрифтах и когда их пытается скрипт считать то одни вопросики.
Наклепал следующее (некоторые строки из ру-боард)
Пробовал макро-автозапись програмку использовать так там непонимает корейского.
|
Отправлено: 18:00, 27-05-2009 | #4 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Ты бы лучше название игры давал, было бы более эфективно
![]() ;=============================================================================== ; ; Function Name: _MouseClickPlus() ; Version added: 0.1 ; Description: Sends a click to window, not entirely accurate, but works ; minimized. ; Parameter(s): $Window = Title of the window to send click to ; $Button = "left" or "right" mouse button ; $X = X coordinate ; $Y = Y coordinate ; $Clicks = Number of clicks to send ; Remarks: You MUST be in "MouseCoordMode" 0 to use this without bugs. ; Author(s): Insolence <insolence_9@yahoo.com> ; ;=============================================================================== Func _MouseClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1) Local $MK_LBUTTON = 0x0001 Local $WM_LBUTTONDOWN = 0x0201 Local $WM_LBUTTONUP = 0x0202 Local $MK_RBUTTON = 0x0002 Local $WM_RBUTTONDOWN = 0x0204 Local $WM_RBUTTONUP = 0x0205 Local $WM_MOUSEMOVE = 0x0200 Local $i = 0 Select Case $Button = "left" $Button = $MK_LBUTTON $ButtonDown = $WM_LBUTTONDOWN $ButtonUp = $WM_LBUTTONUP Case $Button = "right" $Button = $MK_RBUTTON $ButtonDown = $WM_RBUTTONDOWN $ButtonUp = $WM_RBUTTONUP EndSelect If $X = "" OR $Y = "" Then $MouseCoord = MouseGetPos() $X = $MouseCoord[0] $Y = $MouseCoord[1] EndIf For $i = 1 to $Clicks DllCall("user32.dll", "int", "SendMessage", _ "hwnd", WinGetHandle( $Window ), _ "int", $WM_MOUSEMOVE, _ "int", 0, _ "long", _MakeLong($X, $Y)) DllCall("user32.dll", "int", "SendMessage", _ "hwnd", WinGetHandle( $Window ), _ "int", $ButtonDown, _ "int", $Button, _ "long", _MakeLong($X, $Y)) DllCall("user32.dll", "int", "SendMessage", _ "hwnd", WinGetHandle( $Window ), _ "int", $ButtonUp, _ "int", $Button, _ "long", _MakeLong($X, $Y)) Next EndFunc Func _MakeLong($LoWord,$HiWord) Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF)) EndFunc |
|
Отправлено: 06:07, 30-05-2009 | #5 |
Пользователь Сообщения: 114
|
Профиль | Сайт | Отправить PM | Цитировать Может я чтото не так делаю но код вообще не запускается, в процессах имя приложения ElementClient.exe вот с него берется PID который нужен в дальнейшем для _MouseClickPlus
...ммм пока писал, понел что wingethandle нужен не пид а титлы значит его надо сменить на WinGetProcess По правильному пути пошел хз )) поправьте пожалста... п.с. решение нашел для uopilot (програмка для написания автоматизированных действий игры) где достаточно указать pid и в фоновом режиме идет нажатия клавишь, независимо что вы делаете в активном/другом приложении. НО предпочтение всетаки отдаю AutoIT так немного освоил и гайды подробнее. |
Отправлено: 05:01, 31-05-2009 | #6 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать не работал с _ProcessGetWindow не знаю что он возвращает, тебе нужен заголовок окна. Я использовал для EVE Online. Заголовок окна там "EVE". Работали в свернутом режиме нажатия и перетаскивания, но не всегда точно.
|
Отправлено: 12:13, 31-05-2009 | #7 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Пробывал _MouseClickPlus() в разных приложениях, и ничего, клик вообще не происходит. В чем может быть подвох?
|
Последний раз редактировалось r35p3ct, 24-09-2009 в 21:29. Причина: ошибка Отправлено: 20:00, 24-09-2009 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Эмуляция ввода с клавиатуры или клик мышки на кнопку в неактивном окне | Иск | AutoIt | 5 | 28-02-2009 12:30 | |
Ищу драйвер для веб камеры SWEEX VC0323, клавиатуры D-computer KB-2825 и мышки A4TE | Pozia | Поиск драйверов, прошивок и руководств | 0 | 04-01-2009 14:23 | |
Службы - Нельзя запустить никакое приложение двойным щелчком мышки. | Re.i | Microsoft Windows 2000/XP | 3 | 22-09-2008 20:44 | |
[решено] Управление с клавиатуры в WinXP | Coutty | Microsoft Windows 2000/XP | 10 | 08-08-2006 17:20 | |
Управление раскладкой клавиатуры | Junior Penguin | Общий по Linux | 6 | 03-11-2003 13:44 |
|