Size: a a a

2021 April 08

AL

Alex Levchenko in Autohotkey_RU
Так и получает их на всем промежутке. Где первым найдёт. А там у вас еще и прозрачный прогресбар. Который имеет не однородной цвет на всей своей ширине.
источник

В

Владимир in Autohotkey_RU
не могу логику понять хотя  если на  словах то он  должен взять  координаты  цвета ,  записать в переменную например , Cord1    потом  взять  Новые  координаты   цвета и записать во 2 переменную  Cord2   и  потом  проверить     Cord1 = Cord2  и если условие  верное нажать F2   не верно  нажать на F3 , и после  выполнения        F2    или    F3   нужно перезаписать координаты  Cord1   и при следующей проверке    уже  сравнивать с ними
источник

AL

Alex Levchenko in Autohotkey_RU
Взять координаты цвета, это пиксельгетколор.
источник

AL

Alex Levchenko in Autohotkey_RU
color := 0
color1 := 0
color2 := 99
; берем координаты начала прогресбара
!1::
mousegetpos, X1, Y1
X_const1 := X1
ToolTip, X%X1% `nY%Y1%
Sleep, 1000
ToolTip
Return

; берем координаты конца прогресбара
!2::
mousegetpos, X2, Y2
X_const2 := X2
ToolTip, X%X2% `nY%Y2%
Sleep, 1000
ToolTip
Return

; берем цвет заполненой шкалы. Если нажать неслоклько раз, то выберет наиболее синий цвет.
!3::
mousegetpos, l_x, l_y
pixelgetcolor, l_color, l_x, l_y
color := SubStr(l_color, 3, 2)
if (color > color1)
{
 color1 := color
}
ToolTip, % color1     ; эталон синего
Sleep, 1000
ToolTip
Return

; берем цвет пустой шкалы прогресбара. Если нажать несколько раз в разных местах, то выберет наименее синий цвет.
!4::
mousegetpos, l_x, l_y
pixelgetcolor, l_color, l_x, l_y
color := SubStr(l_color, 3, 2)
if (color < color2)
{
 color2 := color
}
ToolTip, % color2       ; эталон черного
Sleep, 1000
ToolTip
Return

; сделать бинарный поиск.
#w::
Xt := X2 - X1  ; длина прогресбара
Yt := (Y1+Y2)//2  ; среднее значение координаты Y
; MsgBox, %Xt% `n%Yt%
X_dt := X1 + Xt//2  ; координата половины прогресбара
Loop
{
MouseMove, X_dt, Yt
PixelGetColor, Color_Temp, X_dt, Yt  ; сверяем с синим цветом (сверяем какой из цветов ближе - Синий или Черный?) Полученый цвет берем и его вычетаем из эталона синего, а потом из эталона черного. Потом сравниваем их.
Color_Temp :=SubStr(Color_Temp, 3, 2)
Color_Temp := "0x" Color_Temp
C1 := "0x" color1
C2 := "0x" color2
tempBULE := Abs(C1 - Color_Temp)     ; эталон синего минус Имеющийся цвет
tempBLACK := Abs(C2 - Color_Temp)    ; эталон темного минус Имеющийся цвет = если маленькое значение, значит темный цвет у нас
;MsgBox, %Color_Temp% `n%tempBULE%и%tempBLACK%
If (tempBULE < tempBLACK)
{
 ;MsgBox, Синего больше!
 X1 := X_dt
 X_dt := X_dt + (X2 - X_dt)//2
}
If (tempBULE > tempBLACK)
{
 ;MsgBox, Синего меньше
 X2 := X_dt
 X_dt := X_dt - (X_dt - X1)//2
}
; двигаемся двоичным алгоритмом, деля нужный отрезок на 2

if ((X_dt < X1) Or (X_dt > X2))
{
 Break
}

If ((X2-X1)<3)
{
 ; тут нужно определить сколько у нас % в шкале
 ;MsgBox, %X_dt% `n%X_const1% `n%X_const2% `n%X_const1%
 result := ((X_dt-X_const1)*100)//(X_const2-X_const1)
 MsgBox, Закончили %result%
 
 break
}
}

Return
источник

AL

Alex Levchenko in Autohotkey_RU
Я выше код написал, его бы проверить ))
источник

AL

Alex Levchenko in Autohotkey_RU
Я проверял на вот этой фотке.
источник

AL

Alex Levchenko in Autohotkey_RU
Горячие клавиши такие,
АЛЬТ+1 - Установить мышь в самое начало прогресбара и зажать комбинацию
АЛЬТ+2 - установить мышь в конец прогресбара и нажать комбинацию клавишь,
АЛЬТ+3 - установить мышь на цвет заполнености прогресбара (который синеголубой)
АЛЬТ+4 - установить мышь на цвет пустого прогресбара
Таким образом мы задали главные константы нашего скрипта.
Нажимаем WIN+W и запускается бинарная выборка.
В итоге получаем MsgBox с количеством процентов заполнености шкалы.
источник

В

Владимир in Autohotkey_RU
источник

В

Владимир in Autohotkey_RU
я так понимаю пустой то что не синий
источник

AL

Alex Levchenko in Autohotkey_RU
У меня на этой картинке показывало 42 %. Пустой это наверное шкала вообще пустая была?
источник

В

Владимир in Autohotkey_RU
сек
источник

В

Владимир in Autohotkey_RU
источник

AL

Alex Levchenko in Autohotkey_RU
Вот. Отлично. Завтра может доделаю цикл который будет дать F2 и F3.
источник

В

Владимир in Autohotkey_RU
а что оно постояно показывает 75
источник

В

Владимир in Autohotkey_RU
нужно заново все делать для нового поиска
источник

AL

Alex Levchenko in Autohotkey_RU
Эммм... Не обновляются переменные X1 и X2. Тоже поправлю.
источник

В

Владимир in Autohotkey_RU
источник

AL

Alex Levchenko in Autohotkey_RU
Я ж говорю что все дело в том что не обновляются переменные Х1 и Х2. Они остаются теми же что и после первой отработки скрипта. Нужно где то их сбрасывать на начальные значения...
источник

В

Владимир in Autohotkey_RU
он должен когда рыба устала то есть полоса на месте жать F2 А когда сопротивляется то есть полоса двигается тогда  F3
источник

AL

Alex Levchenko in Autohotkey_RU
Я это ещё не реализовал. Мне нужно было что бы вы проверили скрипт на реальном окне линейки. Я сомневался в том что он нормально ищет проценты эти.
источник