Что нового

Поиск пикселя только в заданном окне

Alex58reg

Новичок
Сообщения
41
Репутация
0
ребята есть скрипт с циклом поиска пикселя так вот при нахождении цвета он начинает тыкать цифры буквы ну в общем все так как прописано все это происходит в игре для того чтоб вы понимали не в браузерной игре и вот в чем вопрос как заткнуть скрипт при открытии браузера чтоб он в нем не тыкал все подряд
а после того как браузер закрылся и появилась игра он снова начал тыкать
известные мне методы не помогают
за знаки препинания прошу прощения торопился
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
скрипта не видим, поэтому точно сказать не можем.
как вариант - код должен работать только если окно игры в топе окон, то есть самое верхнее. Если нет, то код ждет возвращения окна в топ, либо сам его возвращает
я отредактировал название темы. на будущее - темам нужно давать информативные заголовки
 
Автор
A

Alex58reg

Новичок
Сообщения
41
Репутация
0
Код:
HotKeySet ("{F1}","_Pause" )
HotKeySet ("{F2}","_NotPause")
HotKeySet("{F7}", "_Exit")
WinWait    ("fthsdfgsg")
WinWaitActive ("dfgxdfhxfgh")
Global $Paused
Func _Pause()
$Paused = True
While $Paused
Sleep(100)
WEnd
EndFunc
Func _NotPause()
$Paused = False
EndFunc
While 1
$Variable = PixelSearch(609,332,762,486,0xff0000)
If IsArray($Variable) = True Then
MouseDown("left")
Sleep(14)
MouseUp("left")
Sleep(14)
Send("{3 5}")
Send("{1 10}")
Sleep(700)
EndIf
WEnd
Func _Exit()
Exit
EndFunc


вот скрипт
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в цикле поставить проверку активности окна
Код:
WinActive

в параметры вписываем хэндл окна.
как только окно стало неактивным, то активируем его
Код:
WinActivate
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
HotKeySet("{F1}", "_Pause")
HotKeySet("{F2}", "_NotPause")
HotKeySet("{F7}", "_Exit")
Local $iState
Local $hWnd = WinWait("1111111111111"); вписываем класс или заголовок окна, получаем дескриптор окна - $hWnd
WinWaitActive($hWnd)
Global $Paused
Func _Pause()
    $Paused = True
    While $Paused
        Sleep(100)
    WEnd
EndFunc   ;==>_Pause
Func _NotPause()
    $Paused = False
EndFunc   ;==>_NotPause
While 1
    $iState = WinGetState($hWnd)
    If $iState Then
        If BitAND($iState, 8) Then; если окно активно, то работаем. 
            $Variable = PixelSearch(609, 332, 762, 486, 0xff0000)
            If Not @error Then
                MouseDown("left")
                Sleep(14)
                MouseUp("left")
                Sleep(14)
                Send("{3 5}")
                Send("{1 10}")
                Sleep(700)
            EndIf
        Else
            WinActivate($hWnd); если окно неактивно, то активируем. используем эту строку, если нужно
        EndIf
    EndIf
    Sleep(10)
WEnd
Func _Exit()
    Exit
EndFunc   ;==>_Exit
 
Автор
A

Alex58reg

Новичок
Сообщения
41
Репутация
0
Код:
HotKeySet("{F1}", "_Pause")
HotKeySet("{F2}", "_NotPause")
HotKeySet("{F7}", "_Exit")
Local $iState
Local $hWnd = WinWait("1111111111111"); вписываем класс или заголовок окна, получаем дескриптор окна - $hWnd
WinWaitActive($hWnd)
Global $Paused
Func _Pause()
    $Paused = True
    While $Paused
        Sleep(100)
    WEnd
EndFunc   ;==>_Pause
Func _NotPause()
    $Paused = False
EndFunc   ;==>_NotPause
While 1
    $iState = WinGetState($hWnd)
    If $iState Then
        If BitAND($iState, 8) Then; если окно активно, то работаем.
            $Variable = PixelSearch(609, 332, 762, 486, 0xff0000)
            If Not @error Then
                MouseDown("left")
                Sleep(14)
                MouseUp("left")
                Sleep(14)
                Send("{3 5}")
                Send("{1 10}")
                Sleep(700)
            EndIf
        Else
            WinActivate($hWnd); если окно неактивно, то активируем. используем эту строку, если нужно
        EndIf
    EndIf
    Sleep(10)
WEnd
Func _Exit()
    Exit
EndFunc   ;==>_Exit
огромное спасибо с помощью этого примера перекодировал свой код все работает
 
Верх