Что нового

[Мышь, клавиатура] Помощь в доработке бота, по кликанью в неактивное окно.

2

220827

Гость
Делал маленького бота для игры. Вообщем сделал и все работает, ищет пиксель заданого цвета и нажимает на него, но только в активном окне. сегодня решил поискать, можно ли сделать так же но только для неактивного окна. Нашел функцию ControlClick, вроде все сделал правильно, но в игре вообще никакого движения, никуда не нажимает, да и если бы нажал то персонажи бы двигались. но программа работает, ни ошибок и вылетов..
Помогите найти где ошибка, или это в принципе невозможна?
Код:
HotKeySet("{F10}", "ExitApp")
 Func ExitApp()
  Exit
 EndFunc

Opt ("MouseCoordMode", 2) 
Opt ("PixelCoordMode", 2)

Sleep(4000)

while 1
$Variable = PixelSearch ( 0, 0, 1000, 700, 0xFFFFFF, 3, 1 )
 If IsArray($Variable) = True Then
 ControlClick ( "[CLASS:ge]", "", "[X \ Y \ W \ H ;$Variable[0] \ $Variable[1] \ 1100 \ 740 ]"  , "left" , "3" , "$Variable[0]" , "$Variable[1]" )
 EndIf
Sleep(4000) 
WEnd
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: [Мышь, клавиатура] Поиск пикселя и нажатие на него в неактивном окне.

"$Variable[0]" не нужны кавычки. Не правильный синтаксис в строке с ControlClick
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Мышь, клавиатура] Поиск пикселя и нажатие на него в неактивном окне.

потому что в твоем случае PixelSearch работает по координатам относительно левого верхнего угла клиентской области активного окна. Для того чтобы он работал относительно левой верхней области заданного но неактивного окна тебе нужно использовать его последний параметр hwnd.
Код:
$hwnd = WinGetHandle("окно")
$var = PixelSearch ( 0, 0, 1000, 700, 0xFFFFFF, 3, 1, $hwnd)



Добавлено:
Сообщение автоматически объединено:

Ну и да, ControlClick у тебя какой-то совсем не такой.
 
Автор
2

220827

Гость
Re: [Мышь, клавиатура] Поиск пикселя и нажатие на него в неактивном окне.

Еще вопрос- играю в окне, разрешение окна- 1100х740. как сделать что бы он искал по всему окну, я просто не разобрался как вводить координаты поиска. ну и как уже понятно, в программировании я ничего не понимаю =)


Добавлено:
Сообщение автоматически объединено:

Мне кажеться что ошибка в этой строке
ControlClick ( "[CLASS:Granado Espada]", "", "[X \ Y \ W \ H ;$var[0] \ $var[1] \ 1100 \ 740 ]" , "left" , "3" , "$var[0]" , "$var[1]" )
а именно тут- [X \ Y \ W \ H ;$var[0] \ $var[1] \ 1100 \ 740 ]"
наверно неправильно указал координаты Х и Y (ибо не понял как указать что бы он нажимал на тот пиксель который нашла функция PixelSearch.
или он не может найти клиент игры. игра называеться(и в названии окна так же) Granado Espada. в процессах- ge.exe
Очень прошу помочь


Добавлено:
Сообщение автоматически объединено:

Код:
HotKeySet("{F10}", "ExitApp")
 Func ExitApp()
  Exit
 EndFunc

Sleep(2000)

WinActivate ("[TITLE:Granado Espada]", "")
Opt ("MouseCoordMode", 2) 
Opt ("PixelCoordMode", 2)

while 1
$hwnd = WinGetHandle("[TITLE:Granado Espada]")
$var = PixelSearch ( 0, 0, 1000, 700, 0xFFFFFF, 3, 1, $hwnd)
 If IsArray($var) = True Then
 ControlClick ("[TITLE:Granado Espada]", "Granado Espada", "$hwnd", "left", "3", "$var[0]", "$var[1]")
 EndIf
Sleep(4000) 
WEnd

немного поправил
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Мышь, клавиатура] Поиск пикселя и нажатие на него в неактивном окне.

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Мышь, клавиатура] Поиск пикселя и нажатие на него в неактивном окне." - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Мышь, клавиатура] Помощь в доработке бота, по кликанью в неактивное окно." - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.








Прочитай ка внимательно правила. Там описана ситуация, если в течении темы всплывает название игры и что в этом случае необходимо сделать.
 
Верх