Добрый день! застрял на глупом вопросе уже второй день :stars:
Есть координаты двух точек квадрата первая 50;100(левая верхняя точка), вторая 300;400(нижняя правая точка), как использовать PixelChecksum для этих координат?
PixelChecksum(50,100,300,400) он считает не ту область в которой располагается квадрат
Вот индусский код, в котором ни как не могу это реализовать, зажмите ctrl+s и выделите область, координаты левой верхней и нижней правой точки будут записаны в delite.ini, записывает координаты правильно (проверить можно нажав ctrl+z), PixelChecksum тоже работает, только проверяет область выше и левее чем так что выделена
Есть координаты двух точек квадрата первая 50;100(левая верхняя точка), вторая 300;400(нижняя правая точка), как использовать PixelChecksum для этих координат?
PixelChecksum(50,100,300,400) он считает не ту область в которой располагается квадрат
Вот индусский код, в котором ни как не могу это реализовать, зажмите ctrl+s и выделите область, координаты левой верхней и нижней правой точки будут записаны в delite.ini, записывает координаты правильно (проверить можно нажав ctrl+z), PixelChecksum тоже работает, только проверяет область выше и левее чем так что выделена
Код:
#Include <Misc.au3>
#Include <WindowsConstants.au3>
$Gui_videl = 0
$nagat_Gui_videl = 0
;~ $WinGetTitle_videlenie = ''
Dim $Inipix[5]
Global $MouseGetPos_old[4]
Global $MouseGetPos[4]
HotKeySet('^a','poisk')
HotKeySet('^ф','poisk')
HotKeySet('^s','videlenie')
HotKeySet('^ы','videlenie')
HotKeySet('^z','Win')
HotKeySet('^я','Win')
Func poisk ()
For $i_zero = 0 To 4
$Inipix[$i_zero] = IniRead('delite.ini','Заменить_на_шаг', 'summpix_'&$i_zero,-789)
Next
If($Inipix[0] = -789) Then MsgBox(0,'','Не найдена информация в ини')
;~ MsgBox(0,'',$Inipix[1]&'--'&$Inipix[2]&'--'&$Inipix[3]&'--'&$Inipix[4])
If(PixelChecksum($Inipix[1],$Inipix[2], $Inipix[3],$Inipix[4]) = $Inipix[0]) Then
MsgBox(0,'','Области совпадают')
Else
MsgBox(0,'','Области НЕ совпадают')
EndIf
EndFunc
Func videlenie()
$MouseGetPos = MouseGetPos()
;~ $WinGetTitle_videlenie = WinGetTitle("")
if($Gui_videl = 0) Then
$Gui_videl = GUICreate('NazvaniprogrammiAND',1,1,$MouseGetPos[0],$MouseGetPos[1],0x80000000,0x00000008)
GUISetBkColor(0xff2400);
Opt("WinTitleMatchMode", 2)
WinSetTrans('NazvaniprogrammiAND','',100)
$nagat_Gui_videl = 1
$MouseGetPos_old = WinGetPos( 'NazvaniprogrammiAND')
IniWrite('delite.ini','Заменить_на_шаг', 'summpix_1',$MouseGetPos_old[0])
IniWrite('delite.ini','Заменить_на_шаг', 'summpix_2',$MouseGetPos_old[1])
GUISetState (@SW_SHOWNOACTIVATE,$Gui_videl)
EndIf
; Сделать обнуление $Gui_vide после его удаления
if($Gui_videl <> 0 ) Then
WinMove('NazvaniprogrammiAND', "", Default,Default, $MouseGetPos[0]-$MouseGetPos_old[0],$MouseGetPos[1]-$MouseGetPos_old[1])
EndIf
If($nagat_Gui_videl = 1) Then
While $nagat_Gui_videl <> 0
If(_IsPressed('53') = 0) Then
$MouseGetPos_old = WinGetPos( 'NazvaniprogrammiAND')
$MouseGetPos_old[2] = $MouseGetPos_old[0]+$MouseGetPos_old[2]
$MouseGetPos_old[3] = $MouseGetPos_old[1]+$MouseGetPos_old[3]
GUIDelete($Gui_videl)
IniWrite('delite.ini','Заменить_на_шаг', 'summpix_0',PixelChecksum($MouseGetPos_old[0],$MouseGetPos_old[1],$MouseGetPos_old[2],$MouseGetPos_old[3]))
IniWrite('delite.ini','Заменить_на_шаг', 'summpix_1',$MouseGetPos_old[0])
IniWrite('delite.ini','Заменить_на_шаг', 'summpix_2',$MouseGetPos_old[1])
IniWrite('delite.ini','Заменить_на_шаг', 'summpix_3',$MouseGetPos_old[2])
IniWrite('delite.ini','Заменить_на_шаг', 'summpix_4',$MouseGetPos_old[3])
$nagat_Gui_videl = 0
;~ For $i_zero = 0 To 1
;~ $MouseGetPos_old = 0
;~ $MouseGetPos = 0
;~ Next
;~ $WinGetTitle_videlenie = 0
$Gui_videl = 0
Sleep(100)
EndIf
Sleep(5)
WEnd
EndIf
EndFunc
Func Win()
$Id_okno_1 = GUICreate("", $Inipix[3]-$Inipix[1],$Inipix[4]-$Inipix[2], $Inipix[1],$Inipix[2], 0x80000000) ; создание окна,
GUISetState (@SW_SHOW,$Id_okno_1)
EndFunc
While 1
Sleep(5)
WEnd