Андрей Бобровский
Новичок
- Сообщения
- 2
- Репутация
- 0
Здравствуйте!
вот наворотил академически один скрипт.
Скажите пожалуйста почему когда пометишь искомый кусок экрана в каком нибудь окне а потом окно передвинешь в момент работы скрипта то происходит ошибка... находится не то место куда передвинули?
Если не понятно:
1 запускаем скрипт
2 нажимаем клавишу w дабы пометить верхний левый угол искомой области экрана ( желательно в каком-нибудь окне)
3 нажимаем e дабы пометить нижний правый угол ... , выводится какая - то информация тушим её
4 передвигаем окно (если было шаг можно опустить)
5 нажимаем r дабы найти искомую облать ... ждем в зависимости от ... я думаю дольше 20 минут не стоит ... если не включен оператор с мышкой тогда любуемсо)
6 вопрос когда окно почему врет?
Используйте для AutoIt кода тег [autoit]
madmasles.
вот наворотил академически один скрипт.
Код:
HotKeySet("{ESC}", "Terminate") ;подключение горячих клавиш в часности если ескейп то вываливаемсо)
#include <IsPressedEx_UDF.au3> ;подключение расширения по нажатию клавиш
#include <Misc.au3>
;
; программа используется "как есть"
; поддержка программы отсутствует
; написано вроде на AutoIt v3.
;
;
;
; вроде 1280*1024
;
Global $x1=0
Global $y1=0
Global $x2=0
Global $y2=0
Global $controlsum = 0
Global $controlsum1 = 0
Global $visota = @DesktopHeight
Global $sirina = @DesktopWidth
Global $out = ""
Global $dx = 0
Global $dy = 0
Global $i = 0
Global $j = 0
While 1
;---------------------------------------------------------------------------------------------------------------------------------------------------------
If _IsPressed("1B") Then
MsgBox(0,"_IsPressed", "Нажата клавиша ESC")
ExitLoop
EndIf
;---------------------------------------------------------------------------------------------------------------------------------------------------------
If _IsPressed("57") Then
;MsgBox(0,"_IsPressed", "w")
$pos = MouseGetPos()
$x1 = $pos[0]
$y1 = $pos[1]
Sleep (250)
EndIf
;---------------------------------------------------------------------------------------------------------------------------------------------------------
If _IsPressed("45") Then
;MsgBox(0,"_IsPressed", "e")
$pos = MouseGetPos()
$x2 = $pos[0]
$y2 = $pos[1]
Sleep (250)
$dx = $x2 - $x1
$dy = $y2 - $y1
$controlsum = PixelChecksum($x1,$y1, $x2,$y2)
MsgBox(0, "", "Сообщение " & $x1 &"-"& $y1 &" | "& $x2 &"-"& $y2 &" | "& $controlsum)
$out = "PixelChecksum(" & $x1 &","& $y1 &", "& $x2 &","& $y2 &") = " & $controlsum
Run("notepad.exe")
Sleep (250)
WinActive("Безымянный - Блокнот")
Sleep (250)
;Send("{LSHIFT down}")
;Send("{LCTRL}")
;Send("{LSHIFT up}")
Sleep (250)
Send($out)
EndIf
;---------------------------------------------------------------------------------------------------------------------------------------------------------
If _IsPressed("52") Then
;MsgBox(0,"_IsPressed", "r")
$controlsum = PixelChecksum($x1,$y1, $x2,$y2)
For $i = 0 to $visota Step 1
If _IsPressed("1B") Then
Exit
EndIf
For $j = 0 to $sirina Step 1
If _IsPressed("1B") Then
Exit
EndIf
$controlsum1 = PixelChecksum($j,$i, $j + $dx, $i + $dy)
If $controlsum = $controlsum1 Then
MsgBox(0,"Окно 1", " Ура нашли!!!")
;MouseMove ( $j+($dx/2), $i+($dx/2), 100 )
;MouseClick( "button" [[[,x ,y] ,clicks],speed] )
MouseClick( "left", $j+($dx/2), $i+($dy/2), 2, 100 )
;MouseClick( "left", $j, $i, 2, 100 )
Exit
EndIf
; MouseMove ( $j+($dx/2), $i+($dy/2), 1 )
Next
Next
Exit
EndIf
;--------------------------------------------------------------------------------------------------------------------------------------------------------
WEnd
exit
;функция необходимая для горячих клавишь
Func Terminate()
Exit 0
EndFunc
; собственно и все.
Если не понятно:
1 запускаем скрипт
2 нажимаем клавишу w дабы пометить верхний левый угол искомой области экрана ( желательно в каком-нибудь окне)
3 нажимаем e дабы пометить нижний правый угол ... , выводится какая - то информация тушим её
4 передвигаем окно (если было шаг можно опустить)
5 нажимаем r дабы найти искомую облать ... ждем в зависимости от ... я думаю дольше 20 минут не стоит ... если не включен оператор с мышкой тогда любуемсо)
6 вопрос когда окно почему врет?
Используйте для AutoIt кода тег [autoit]

madmasles.