Что нового

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

Alex58reg

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

joiner

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

Alex58reg

Новичок
Сообщения
34
Репутация
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 372
Репутация
589
в цикле поставить проверку активности окна
Код:
WinActive

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

Alex58reg

Новичок
Сообщения
34
Репутация
0
а примером можно пожалуйста
 

joiner

Модератор
Локальный модератор
Сообщения
3 372
Репутация
589
Код:
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

Новичок
Сообщения
34
Репутация
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
огромное спасибо с помощью этого примера перекодировал свой код все работает
 
Верх