1

Тема: AHK: GUI счетчик исчисления поверх GUI картинки

У нас есть GUI картинка0 поверх всех окон, без рамки, весит постоянно. Итак, задача если найдена какая-нибудь определенная картинка1 через

ImageSearch

, то показывать таймер отсчета поверх GUI картинки0
(Фон таймера должен быть прозрачный, располагаться в центре GUI картинки, отсчет должен быть В СЕКУНДАХ до 1 белыми цифрами. Таймер пропадает только если достигает 1 или находит определенную картинку2 через

ImageSearch

)
В добавок при левом щелчке по GUI картинке0 делать следующее:

Send клавиша послана

Есть идея делать это все через многочисленные GUI слои. То есть на каждую отсчет-цифру рисовать цифру под размер GUI картинки0, а это значит рисовать порядка 54 цифр (потому что максимально продолжительный таймер начинает отсчитывать с 55) и потом каждую секунду открывать, закрывать цифры с таймером, тогда получится длинный код, как, например, в этом куске: 

ImageSearch, FoundX, FoundY, 967, 967, 996, 988, C:\Scripts\td.bmp    
if ErrorLevel = 0
{
         Gui, 1: Add, Picture,, E:\Scripts\Picture\55.png
          Gui, 1: Show, NA x934 y968
        sleep, 1000

            Gui, 1: Cancel
           Gui, 2: Add, Picture,, E:\Scripts\Picture\54.png
            Gui, 2: Show, NA x934 y968
        sleep, 1000

            Gui, 2: Cancel
           Gui, 3: Add, Picture,, E:\Scripts\Picture\53.png
            Gui, 3: Show, NA x934 y968
        sleep, 1000

            Gui, 3: Cancel

Есть много ссылок, которые вы можете мне кинуть, например:
http://forum.script-coding.com/viewtopi … 899#p72899
Но в них мало, что понятно. Если не трудно напишите кто-нибудь мою задачу на практике с комментариями в коде, чтобы понять как это делать для себя в будущем.

2

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Но в них мало, что понятно. Если не трудно напишите кто-нибудь мою задачу на практике с комментариями в коде, чтобы понять как это делать для себя в будущем.

Вот там и надо было задавать вопросы по построчному объяснению кода, это и есть 90% вопроса данной темы. Ну или хотя бы просто сказать спасибо, человеку написавшему для вас вроде бы неплохой вариант по сабжу.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Спасибо. Просто в течении 4 месяцев в свободное время я разбирал, то что вы написали, но так и не понял все полностью. Я не понимаю как из этого

MaxIndex := 100
Gui Margin, 0, 0
Gui, Font, s64 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui Color, 0x1C9900
WinSet, TransColor, 0x1C9900
Gui Add, Text, vText cDBC935 Center, % MaxIndex
Return

1:: 
    Num := MaxIndex
    SetTimer, Hide, Off 
    Gui Show, NA x5 y5 
    
Picture:  
    GuiControl,, Text, % Num--
    SetTimer, % Num = 0 ? "Hide" : "Picture", -100
    Return
    
Hide:
    Gui Hide 
    Return 

можно сделать то, что я написал в первом сообщении. Вы можете построчно объяснить с комментариями к коду что да как?

4 (изменено: Alectric, 2013-10-30 20:45:14)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

MaxIndex := 100 ; максимальное время

; создание окна
Gui Margin, 0, 0
Gui, Font, s64 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui Color, 0x1C9900
WinSet, TransColor, 0x1C9900
Gui Add, Text, vText cDBC935 Center, % MaxIndex
Return

1::         ; нажимаем 1
    Num := MaxIndex     ; присваивается значение таймера переменной Num
    SetTimer, Hide, Off      ;    остановка таймера Hide если он запущен
    Gui Show, NA x5 y5      ; отобразить окно
    
Picture:  
    GuiControl,, Text, % Num--          ; уменьшить значение таймера и отобразить на окне
    SetTimer, % Num = 0 ? "Hide" : "Picture", -100      ; запустить таймер: если Num=0 - Hide, если нет - Picture
    Return
    
Hide:
    Gui Hide          ; скрыть окно
    Return 
Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

5 (изменено: Странникх, 2013-10-30 20:50:19)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Gui Margin, 0, 0
Gui, Font, s64 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui Color, 0x1C9900
WinSet, TransColor, 0x1C9900
Gui Add, Text, vText cDBC935 Center, % MaxIndex
Return

Этот параметр влияет на все GUI элементы (картинки, окна) или только для одного типа, например, только для

GUI, 1 ; влияет
GUI, 2 ; не влияет

?
Можно узнать пояснение

% MaxIndex

и знаков: %, :, ?, &  ?

6 (изменено: Alectric, 2013-10-30 21:16:50)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Тут я не решусь объяснять(могу дезинформировать).
Почитай справку на русском для gui и для спец-символов(статья "Переменные и выражения").

Все-таки попытаюсь:


Из справки:
Gui,  ; Изменяет текущее/по умолчанию окно GUI.
Gui, 2: ; Изменяет второе окно GUI.

% - значит что далее будут использоваться содержимое переменных.
Т.е.:

a=1
b=%a%   ; b станет равной a
c=% a+b  ; после % можно выполнять действия с переменными

SetTimer, % Num = 0 ? "Hide" : "Picture", -100

SetTimer, - функция

% - переход в режим содержимого и действий

Num = 0 ? - буквально вопрос: num=0?

"Hide" - если да функция выполняет первое действие
         
: - разделитель

"Picture" - если нет - второе

, -100 - надстройка для функции SetTimer



Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

7

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Спасибо. Просто в течении 4 месяцев в свободное время я разбирал, то что вы написали, но так и не понял все полностью.

Ну если примеры работают в соответствии с задачей, можно же за 4 месяца сказать "Спасибо, раберусь потом". Вы поймите что когда кому то помогаешь, а от него ни ответа ни привета, то я почему то начинаю думать что я что то явно задолжал ТС`у, или ещё хуже - что вместо помощи кому то, я занимаюсь никому ненужной ерундой.

Я не понимаю как из этого, можно сделать то, что я написал в первом сообщении.

Примерно так:


MaxIndex := 55
Gui Margin, 0, 0
Gui, Font, s64 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound  
Gui Add, Picture, x0 y0 vPicture, D:\Images\4858670_large.jpg
Gui Add, Text, vText cDBC935 x5 y5 Center BackgroundTrans, % Num := MaxIndex
Gui Show, NA x5 y5   
    
Picture:  
    GuiControl,, Text, % Num--  
    SetTimer, % Num = 0 ? "Hide" : "Picture", -1000
    Return
    
Hide:
    Gui Hide 
    Return

Хотя в том что вы написали в первом сообщении, я мало понял.

Можно узнать пояснение
% MaxIndex

и знаков: %, :, ?, &  ?

% - результат выражения:

MaxIndex := 55
 
MsgBox %MaxIndex%
MsgBox % Num := MaxIndex + 55
MsgBox %Num%
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: GUI счетчик исчисления поверх GUI картинки

c=% a+b

Почему то работает?? но правильнее наверное:

c := a+b
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9 (изменено: Alectric, 2013-10-30 21:37:38)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

serzh82saratov пишет:
c=% a+b

Почему то работает?? но правильнее наверное:

c := a+b

Ну наверно потому-что как я понял % это переход в режим "содержимого" и "действий".
Только вот не знаю как "завершить" этот режим?

Так?:

MsgBox % a := b + c % какой либо текст. ; так не работает
MsgBox % a := b + c "какой либо текст." ; так работает
MsgBox какой либо текст  % a := b + c  ; так не работает
MsgBox % a := b + c , какой либо текст  ; так работает, но после запятой идет другой параметр функции

Или он будет действовать до перевода строки...

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

10

Re: AHK: GUI счетчик исчисления поверх GUI картинки


MsgBox % a := b + c % какой либо текст. ; так не работает
MsgBox % a := b + c "какой либо текст." ; так работает
MsgBox какой либо текст  % a := b + c  ; так не работает
MsgBox % a := b + c , какой либо текст  ; так работает, но после запятой идет другой параметр функции

% означает что в (одном) параметре команды не функции, далее будет применено выражение.

MsgBox % "какой либо текст. " a := b + c " какой либо текст." 

"Завершит его" запятая след. параметра.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11 (изменено: Странникх, 2013-10-30 23:09:17)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Alectric,

SetTimer, % Num = 0 ? "Hide" : "Picture", -100

Получается, что

?

- это что-то вроде

if ErrorLevel = 0

, а

:

-это что-то вроде

if ErrorLevel = 1
% - переход в режим содержимого и действий

Почему в коде он пишется просто как %, а не как, например, так:

%MaxIndex%

?


serzh82saratov,

:=

Не могли бы вы дать пояснение (комментарий) о том, что это такое. В справке я не понял как это понять.

SetTimer, % Num = 0 ? "Hide" : "Picture", -1000

Почему -1000 ? Почему не -55?

MaxIndex := 55
 
MsgBox %MaxIndex%
MsgBox % Num := MaxIndex + 55
MsgBox %Num%

иными словами:

MaxIndex := 55
 
MsgBox 55
MsgBox 55 Num := MaxIndex + 55
MsgBox %Num% ; - тут не понятно как записать

? Почему во второй строчке MsgBox пишется просто

%

, а не

%MaxIndex%

?


+E0x08000000

Отвечает за прозрачность как я понимаю?


vPicture
vText

Как это понять? Почему приписывается v, для чего (для сноски в Picture, а потом при запуске Picture будет запускаться GuiControl, который запустить Text)? Я так понимаю?


Как сделать так, чтобы для каждого окна GUI не писать вот это:

Gui Margin, 0, 0
Gui, Font, s64 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui Color, 0x1C9900
WinSet, TransColor, 0x1C9900
Gui Add, Text, vText cDBC935 Center, % MaxIndex
Return

? Иными словами сделать, что-то вроде общего атрибута для каждого окна.

12

Re: AHK: GUI счетчик исчисления поверх GUI картинки

SetTimer, % Num = 0 ? "Hide" : "Picture", -1000

Почему -1000 ? Почему не -55?

Вроде понятно, -1000, значит минус секунда от текущего значения MaxIndex.

13

Re: AHK: GUI счетчик исчисления поверх GUI картинки

? Иными словами сделать, что-то вроде общего атрибута для каждого окна.

Совсем непонятно.

+E0x08000000

Не активировать окно при клике по нему, какая там прозрачность, чего?

Вроде понятно, -1000, значит минус секунда от текущего значения MaxIndex.

Не минус, а запустить метку однократно.

Остальные ответы придётся искать самостоятельно в статье Переменные и выражения, совсем недавно мне пришлось перечитать её много раз, чтобы понять тоже самое. А лучше взять какой нибудь непонятный скрипт, посимвольно ковырять вникая в алгоритм, и искать ответы в той статье.

Получается, что
?

- это что-то вроде
if ErrorLevel = 0

, а
:

-это что-то вроде

Тернарный условный оператор
Num = 0 это условие, ? then, : else.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14 (изменено: Странникх, 2013-10-30 23:41:28)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Не минус, а запустить метку однократно.

Почему именно -1000? Почему вы приводили в других примерах по -100?

Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound  

В первом сообщении я написал, что при клике на картинку будет происходить какое-то действие. Если данные параметры будут на картинке, то значит она будет прозрачный для кликов - все клики будут проходить сквозь нее. Значит мне следует грубо говоря под картинку засунуть Gui Button ? Но как его тогда сделать поверх всех окон и чтобы он не был поверх самой картинки или был, но был невидимым, убрать +Lastfound +E0x08000000 для Button?

Остальные ответы придётся искать самостоятельно в статье Переменные и выражения

Я бегом пробежался, но не нашел что-то похожее на

vPicture
vText

, в ней такое есть?

Иными словами сделать, что-то вроде общего атрибута для каждого окна.

Совсем непонятно.

У меня в сумме 10 картинок получается. На каждую картинку планируется добавить по счетчику. Это значит мне придется данный код повторить 10 раз

MaxIndex := 55
Gui Margin, 0, 0
Gui, Font, s64 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound  
Gui Add, Picture, x0 y0 vPicture, D:\Images\4858670_large.jpg
Gui Add, Text, vText cDBC935 x5 y5 Center BackgroundTrans, % Num := MaxIndex
Gui Show, NA x5 y5   
    
Picture:  
    GuiControl,, Text, % Num--  
    SetTimer, % Num = 0 ? "Hide" : "Picture", -1000
    Return
    
Hide:
    Gui Hide 
    Return

Естественно изменив время счетчика, координаты и сам путь картинки, но можно как-нибудь обойтись без лишней писанины такой, как шрифт и параметры -Caption +AlwaysOnTop +E0x08000000 +Lastfound  ? Так сказать внести их в общую для всех GUI окон структуру в скрипте.

15

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Нужно зделать ограниченный цикл.

loop,10
{
gui,%a_index%: -caption  alwaysontop ; и т.д.
}

Беглое прочтение справки ничего не даст, нужно вникать, пробовать на примерах (из тойже справки).

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

16

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Странникх пишет:

У меня в сумме 10 картинок получается. На каждую картинку планируется добавить по счетчику. Это значит мне придется данный код повторить 10 раз

Этот и все другие вопросы, говорят мне о том что вы совершенно не хотите ничего сами пробовать, и даже просто запускать примеры и делать элементарные выводы. Если не в первом же примере, то в "Показ превью всех картинок из папки" становится очевидно, что код один, а картинок хоть миллион.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17 (изменено: Indomito, 2013-10-31 20:22:52)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Доп. вопрос по теме, ну почти

А как сделать вывод поверх полноэкранного приложения, в контексте игры?
Этот вопрос поднимался в одной теме, но сказали, что нужно обращаться к функциям DX, но тогда как же в этих приложениях работает поиск на экране по фрагменту картинки?

Что-то я не очень понимаю на счёт DX, т.е. необходимости обращения к её функциям.

P.S. Адрес темы - AHK: показать GUI поверх активного приложения

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

18 (изменено: Alectric, 2013-10-31 20:39:36)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Насколько я понимаю работу "всего": DX отправляет (обновляет) кадры с заданной частотой (FPS), поэтому кадры игры будут всегда поверх любого окна (в полноэкранном режиме)... да и выводятся на экран кадры иначе чем окна, это можно заметить при сворачивании игры (черный экран на некоторое время)... следовательно и окно нужно вытаскивать на поверхность точно после кадра с той же FPS, т.е. синхронно... Ну либо задать бОльший "приоритет" чем у DX... или "внедрить" в сам DX... (ну это уже совсем бред).

Как я уже говорил сделать окно поверх DX можно, и если в окне есть изменяемый "static" шкала загрузки к примеру, то при обновлении этой шкалы оно отобразится на экране (в промежутке между кадрами игры).

Это мое мнение и опыт, может я и ошибаюсь.

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

19 (изменено: Indomito, 2013-11-01 01:55:07)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Ну, я не знаю, зачем GUI, что бы нарисовать прицел - это для меня загадка, если только не для интеративности и корректировки самого прицела.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

20

Re: AHK: GUI счетчик исчисления поверх GUI картинки

В общем, получилось пока что так:

MaxIndex := 55
Gui Margin, 0, 0
Gui, Font, s34 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0 vPicture, E:\Scripts\Picture\All line v3.png
   WinSet, TransColor, 0 
Gui Color, 0
Gui Show, NA x684 y772


~4::
{
ImageSearch, FoundX, FoundY, 1168, 976, 1272, 995, C:\Scripts\cd.bmp
if ErrorLevel = 0
Gui Add, Text, vText cDBC935 x10 y0 Center BackgroundTrans, % Num := MaxIndex
}

Picture:  
    GuiControl,, Text, % Num--  
    SetTimer, % Num = 0 ? "Hide" : "Picture", -1000
    Return
    
Hide:
    GuiControl, Hide, Text
    GuiControl,, Text, % Num := 55 
    Return

F1::ExitApp

1) Не могу понять как сделать поиск изображения в цикле (loop) и если бы находило изображение, то запускало таймер.
2) Не знаю как вызвать счетчик второй раз, если убирать -1000 в строчке

SetTimer, % Num = 0 ? "Hide" : "Picture", -1000

, то отсчет идет быстрее, чем с -1000.
3) Почему если заменять

cDBC935

на

ffffff

(белый цвет) выдает ошибку?
4) Знаки := и = особой разницы не имеют как я понял, функцию несут одну и ту же, просто их переменные по разному будут писаться, но традиционный метод кажется проще.

21 (изменено: serzh82saratov, 2013-11-01 01:45:17)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

~4::
{
ImageSearch, FoundX, FoundY, 1168, 976, 1272, 995, C:\Scripts\cd.bmp
if ErrorLevel = 0
Gui Add, Text, vText cDBC935 x10 y0 Center BackgroundTrans, % Num := MaxIndex
}

Это ошибка, если ещё раз выполнить строку.


MaxIndex := 55
Gui Margin, 0, 0
Gui, Font, s34 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0 vPicture gNewPicture w222 h-1, D:\Images\3D-part2\Glassina (18).jpg
Gui Add, Text, vText cffffff x10 y0 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Show, NA x1 y1
 
~4:: 
ImageSearch: 
    ImageSearch, FoundX, FoundY, 1168, 976, 1272, 995, C:\Scripts\cd.bmp
    if !ErrorLevel  
        GoTo NewPicture 
    Return
 
NewPicture:  
    Num := MaxIndex 
    GuiControl, Show, Text 
Picture:  
    SetTimer, % Num = 1 ? "Hide" : "Picture", -1000
    GuiControl,, Text, % Num--  
    Return
 
Hide:
    GuiControl, Hide, Text 
    GoTo ImageSearch  

Также здесь клик по картинке сбросит таймер. Можно изменить gNewPicture на gМояМетка.
Как видно +E0x08000000 ни чему не мешает.
---
:= часто необходимо для присваивания переменной результата выражения, = это не сделает в большинстве случаев.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

22

Re: AHK: GUI счетчик исчисления поверх GUI картинки

#InstallKeybdHook

MaxIndex := 55
Gui Margin, 10, 15
Gui, Font, s30 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui Color, 0
WinSet, TransColor, 0
Gui Add, Text, vText cDBC935 Center BackgroundTrans, % MaxIndex

Gui, 2: Margin, 0, 0
Gui, 2: -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui, 2: Add, Picture, x0 y0 vPicture, E:\Scripts\Picture\All line v3.png
Gui, 2: Color, 0
Gui, 2: Show, NA x684 y772

Loop
{
PixelSearch, Px, Py, 1141, 972, 1279, 1034, 0x5E6467, 2    
if ErrorLevel = 0
{
    Num := MaxIndex
    SetTimer, Hide, Off 
    Gui Show, NA x684 y772

Picture:  
    GuiControl,, Text, % Num--
    SetTimer, % Num = 0 ? "Hide" : "Picture", -985
    Return
    
Hide:
    Gui Hide 
    Return 
}
}

return

F1::ExitApp

Вот в цикл попробовал заключить. По идее каждый раз, когда находится пиксель должен всегда происходить таймер. Я имею в виду, вот таймер кончился, через секунду после окончания появился тот самый пиксель и таймер снова должен запуститься. Проблема в том, что порой таймер не запускается, установить причину не могу. Я перепробовал поиск изображения через pixelgetcolor, imagesearch, но все не могут постоянно находить тот пиксель. Я проверял другим кодом работоспособность пикселя - пиксель находится без проблем, но почему-то в этом коде он работает неисправно..

23

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Сделал поиск по двум картинкам.

#InstallKeybdHook

MaxIndex := 55
Gui Margin, 10, 15
Gui, Font, s30 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui Color, 0
WinSet, TransColor, 0
Gui Add, Text, vText cDBC935 Center BackgroundTrans, % MaxIndex

Gui, 2: Margin, 0, 0
Gui, 2: -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui, 2: Add, Picture, x0 y0 vPicture, E:\Scripts\Picture\All line v3.png
Gui, 2: Color, 0
Gui, 2: Show, NA x684 y772

Loop

Picture:  
    GuiControl,, Text, % Num--
    SetTimer, % Num = 0 ? "Hide" : "Picture", -985
    Return
    
Hide:
    Gui Hide 
    Return 
{
ImageSearch, FoundX, FoundY, 1168, 990, 1146, 978, C:\Scripts\meta1.bmp
if ErrorLevel = 0
{
    Num := MaxIndex
    SetTimer, Hide, Off 
    Gui Show, NA x684 y772

}

if ErrorLevel = 1
{
ImageSearch, FoundX, FoundY, 1224, 976, 1244, 987, C:\Scripts\meta2.bmp
if ErrorLevel = 0
{
    Num := MaxIndex
    SetTimer, Hide, Off 
    Gui Show, NA x684 y772
}
}

}




F1::ExitApp

Не понятно почему не работает..

24

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Вот в цикл попробовал заключить. По идее каждый раз, когда находится пиксель должен всегда происходить таймер. Я имею в виду, вот таймер кончился, через секунду после окончания появился тот самый пиксель и таймер снова должен запуститься.

Чтобы был цикл, нужно всего лишь добавить ещё один таймер в ImageSearch:


MaxIndex := 55
Gui Margin, 0, 0
Gui, Font, s34 Bold, Tempus Sans ITC 
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0 vPicture gNewPicture w222 h-1, D:\Images\3D-part2\Glassina (18).jpg
Gui Add, Text, vText cffffff x10 y0 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Show, NA x1 y1
 
~4:: 
ImageSearch: 
    ImageSearch, FoundX, FoundY, 1168, 976, 1272, 995, C:\Scripts\cd.bmp
    if !ErrorLevel  
        GoTo NewPicture 
    SetTimer, ImageSearch, -100
    Return
 
NewPicture:  
    Num := MaxIndex 
    GuiControl, Show, Text 
Picture:  
    SetTimer, % Num = 1 ? "Hide" : "Picture", -1000
    GuiControl,, Text, % Num--  
    Return
 
Hide:
    GuiControl, Hide, Text 
    GoTo ImageSearch  
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

25

Re: AHK: GUI счетчик исчисления поверх GUI картинки

MaxIndex := 55
Gui, Font, s30 Bold, Vtks Velhos Tempos
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0 vPicture, E:\Scripts\Picture\All line v3.png
Gui Add, Text, vText x-4 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Color, 0
WinSet, TransColor, 0
Gui Show, NA x684 y772
  
ImageSearch: 
ImageSearch, FoundX, FoundY, 1144, 976, 1167, 994, C:\Scripts\meta1.bmp
x = %ErrorLevel% 


ImageSearch, FoundX, FoundY, 1227, 978, 1244, 994, C:\Scripts\meta2.bmp
y = %ErrorLevel%

if %y% = 0 or %x% = 0
GoTo NewPicture 
    SetTimer, ImageSearch, -100
    Return

NewPicture:  
    Num := MaxIndex 
    GuiControl, Show, Text 
Picture:  
    SetTimer, % Num = 1 ? "Hide" : "Picture", -987
    GuiControl,, Text, % Num--  
    Return

Hide:
    GuiControl, Hide, Text 
    GoTo ImageSearch  
return

; c5ecdb8

*!Tab:: AltTabAndMenu

Таймер прекрасно работает, только картинку ищет с задержкой 10 мс примерно, поэтому если на таймере самой картинки станет 1 секунда, то на простом GUI таймере станет 2 секунды, именно поэтому параметр в простом GUI таймере стоит -987, чтобы в итоге (по истечению 55 секунд) примерно в долю секунды сходился таймер картинки и просто таймер. Это мелочь.

Меня больше интересует вопрос почему не получается создать условие

if %y% = 0 or %x% = 0

Не понял до конца к чему относятся эти строчки:

Picture:  
    SetTimer, % Num = 1 ? "Hide" : "Picture", -987
    GuiControl,, Text, % Num--  
    Return

В плане, функцию я знаю что они делают, но как Picture: вызывается, где написано GoTo Picture или Picture: входит в   NewPicture: и им же вызывается?

BackgroundTrans

Еще интересный момент, если убирать этот параметр, то счетчик становится прозрачный поверх картинки.  А если оставить его в параметрах, то получается он принимает фон GUI элемента управления (в данном случае картинки) ?

Все остальное понятно, это не оставляет меня без радости Конечно, с переменными и выражениями стоит подольше посидеть.

26

Re: AHK: GUI счетчик исчисления поверх GUI картинки

if %y% = 0 or %x% = 0

Так:

if (y = 0 || x = 0)

Но я бы сделал так:

ImageSearch:  
    ImageSearch, , , 1144, 976, 1167, 994, C:\Scripts\meta1.bmp
    if !ErrorLevel  
        GoTo NewPicture   
    ImageSearch, , , 1227, 978, 1244, 994, C:\Scripts\meta2.bmp
    if !ErrorLevel  
        GoTo NewPicture 
    SetTimer, ImageSearch, -100
    Return

---

В плане, функцию я знаю что они делают, но как Picture: вызывается, где написано GoTo Picture или Picture: входит в   NewPicture: и им же вызывается?

Вот же:

SetTimer, % Num = 1 ? "Hide" : "Picture", -987

Еще интересный момент, если убирать этот параметр, то счетчик становится прозрачный поверх картинки.  А если оставить его в параметрах, то получается он принимает фон GUI элемента управления (в данном случае картинки) ?

Ну да.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

27 (изменено: Странникх, 2013-11-03 02:00:57)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Process, priority, , Realtime

MaxIndex := 55
Gui, Font, s30 Bold, Vtks Velhos Tempos
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0, E:\Scripts\Picture\All line v3.png
Gui Add, Text, vText x-4 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Color, 0
Gui Show, NA x684 y772, GUI Window
WinSet, TransColor, 0, GUI Window
Winset, ExStyle, +0x20, GUI Window

ImageSearch:
ImageSearch,,, 1166, 990, 1167, 990, C:\Scripts\meta1.bmp
if ErrorLevel = 0
GoTo NewPicture
 
if ErrorLevel = 1
    {
    ImageSearch,,, 1239, 988, 1240, 988, C:\Scripts\meta2.bmp 
    if ErrorLevel = 0
    GoTo NewPicture
    }

SetTimer, ImageSearch, -100
return

NewPicture:  
    Num := MaxIndex  
    GuiControl, Show, Text 
    GoTo Times
    Return

Times:  
ImageSearch,,, 1574, 1012, 1581, 1012, C:\Scripts\cancel.bmp
if ErrorLevel = 0
{
Num = 1
if Num = 1
GoTo Hide
}

if ErrorLevel = 1
    SetTimer, % Num = 1 ? "Hide" : "Times", -983
    GuiControl,, Text, % Num--  
Return

Hide:
    GuiControl, Hide, Text 
    GoTo ImageSearch  

Наблюдаю проблему с исчезновением данного GUI интерфейса под другими окнами при переключении между вкладками (окнами) через AltTab. Не знаю с чем связано,

*!Tab:: AltTabAndMenu

не помогает.
Также не совсем понятно почему не работает этот вариант со сбросом счетчика:

#NoEnv
Process, priority, , Realtime

MaxIndex := 55
Gui, Font, s30 Bold, Vtks Velhos Tempos
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0, E:\Scripts\Picture\All line v3.png
Gui Add, Text, vText x-4 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Color, 0
Gui Show, NA x684 y772, GUI Window
WinSet, TransColor, 0, GUI Window
Winset, ExStyle, +0x20, GUI Window

ImageSearch:
ImageSearch,,, 1574, 1012, 1581, 1012, C:\Scripts\cancel.bmp
if ErrorLevel = 0
GoTo Hide

if ErrorLevel = 1
       {
ImageSearch,,, 1166, 990, 1167, 990, C:\Scripts\meta1.bmp
if ErrorLevel = 0
GoTo NewPicture
 
if ErrorLevel = 1
    {
    ImageSearch,,, 1239, 988, 1240, 988, C:\Scripts\meta2.bmp 
    if ErrorLevel = 0
    GoTo NewPicture
    }
       }

SetTimer, ImageSearch, -80
return

NewPicture:  
    Num := MaxIndex  
    GuiControl, Show, Text 
    SetTimer, Times1, On
    Return

Times1:  
    SetTimer, % Num = 1 ? "Hide" : "Times1", -987
    GuiControl,, Text, % Num--  
    Return

Hide:
    SetTimer, Times1, Off
    GuiControl, Hide, Text 
    GoTo ImageSearch  
    Return

Еще была проблема - у меня в приложении, над которым находится данный GUI интерфейс, другой курсор мышки, поэтому при наведение на GUI курсор мышки менялся на стандартный. Решил проблему, добавив

Winset, ExStyle, +0x20, GUI Window

, но если мне потребуется добавлять прозрачные кнопки поверх этих таймеров, то придется второе GUI окно делать как я понимаю?

upd: Кстати, условия для ИЛИ

if (y = 0 || x = 0)

иногда не срабатывали, не знаю почему...

28

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Наблюдаю проблему с исчезновением данного GUI интерфейса под другими окнами при переключении между вкладками (окнами) через AltTab. Не знаю с чем связано,

Видимо эти окна тоже AlwaysOnTop.

Также не совсем понятно почему не работает этот вариант со сбросом счетчика:

А что там нужно делать? И запись просто ужасна, читать не хочется, соблюдайте хотя бы табуляцию для начала.

но если мне потребуется добавлять прозрачные кнопки поверх этих таймеров, то придется второе GUI окно делать как я понимаю?

А это как? Если всё равно нужен стиль 0x20.

иногда не срабатывали, не знаю почему...

Это наврядли.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

29 (изменено: Странникх, 2013-11-03 19:14:24)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Видимо эти окна тоже AlwaysOnTop.

Врятли, это папки, текстовые файлы, окно браузера и скайп. При переключении между ними происходит проблема. Я ее частично решил этим кодом:

F7::

Loop
{
IfWinActive, Paint
{
Gui Show, NA x684 y772, GUI Window
}

else IfWinNotActive, Paint
{
Gui Hide
}

sleep 100
}
return

Единственный минус данного кода это то, что придется каждый раз при запуске скрипта нажимать F7, чтобы запускать цикл. По-другому, к сожалению, никак не получается его "впихнуть сверху" кода без активации горячей клавишей.

А что там нужно делать? И запись просто ужасна, читать не хочется, соблюдайте хотя бы табуляцию для начала.

Я по-другому писать не умею, как знакомый научил так и пишу Нужно было сделать что-то вроде этого:

Times:  
PixelSearch,,,  1577 , 1014 , 1577 , 1014 , 0x085033
if ErrorLevel = 0 
{
Num = 1
if Num = 1
GoTo Hide
}

if ErrorLevel = 1
    SetTimer, % Num = 1 ? "Hide" : "Times", -985
    GuiControl,, Text, % Num--

Return

Только вставить картинку(пиксель) со сбросом нужно было в ImageSearch. Я перепробовал много вариантов куда можно было вставить картинку(пиксель) со сбросом, но единственный вариант это похоже вставить его именно в это место. Проблема в том, что нахождение пикселя занимает 985мс, иногда раньше, иногда позже в зависимости от времени последнего отнятия цифры в счетчике. Из-за этого таймер запаздывает на некоторое количество времени, а именно если таймер 55 секунд должен отсчитывать, то при пикселе-сбросе таймер как бы отсчитает с 56 и в конечном счете окажется разница между первым и втором таймерами в 1 секунду примерно. Т.е. второй таймер , реализованный через сброс отсчитает на, примерно, секунду позже чем первый бы без сброса.
---------------------------------------------------------------------

#NoEnv
Process, priority, , Realtime
Process, priority, Paint, Realtime

MaxIndex := 55
Gui, Font, s30 Bold, Vtks Velhos Tempos
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0, E:\Scripts\Picture\All line v3.png
Gui Add, Text, vText x-4 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText2 x61 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Color, 0
Gui Show, NA x684 y772, GUI Window
WinSet, TransColor, 0, GUI Window
Winset, ExStyle, +0x20, GUI Window


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1


ImageSearch:
PixelSearch,,,  1162 , 1017 , 1162 , 1017 , 0x181C27, 4
if !ErrorLevel 
GoTo A
 
PixelSearch,,,  1229 , 1010 , 1229 , 1010 , 0x19354A, 4
if !ErrorLevel 
GoTo A
    
PixelSearch,,,  1155 , 1020 , 1155 , 1020 , 0x24190F, 4
if !ErrorLevel 
GoTo A

PixelSearch,,,  1232 , 1023 , 1232 , 1023 , 0x1E160F, 4
if !ErrorLevel 
GoTo A

SetTimer, ImageSearch, -90

ImageSearch2:
PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x2C2C2A, 4
if !ErrorLevel 
GoTo B

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x2F2C28, 4
if !ErrorLevel 
GoTo B

PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x261B10, 4
if !ErrorLevel 
GoTo B

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x2D1F11, 4
if !ErrorLevel 
GoTo B

SetTimer, ImageSearch2, -90

return

A:  
    Num := MaxIndex  
    GuiControl, Show, Text 
    GoTo Times
    Return

Times:  
PixelSearch,,,  1577 , 1014 , 1577 , 1014 , 0x085033
if ErrorLevel = 0 
{
Num = 1
if Num = 1
GoTo Hide
}

if ErrorLevel = 1
    SetTimer, % Num = 1 ? "Hide" : "Times", -985
    GuiControl,, Text, % Num--

Return

Hide:
    GuiControl, Hide, Text 
    GoTo ImageSearch  



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 

    B:  
        Num2 := MaxIndex  -15
        GuiControl, Show, Text2 
        GoTo Times2
        Return

    Times2:  
    PixelSearch,,,  1577 , 1014 , 1577 , 1014 , 0x085033
        if ErrorLevel = 0 
    {
    Num2 = 1
    if Num2 = 1
    GoTo Hide2
    }
    
    if ErrorLevel = 1
        SetTimer, % Num2 = 1 ? "Hide2" : "Times2", -987
        GuiControl,, Text2, % Num2--  
    Return
    
    Hide2:
        GuiControl, Hide, Text2
        GoTo ImageSearch2  


        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



+Z::Reload

V::
return

C::
return

F7::

Loop
{
IfWinActive, Paint
{
Gui Show, NA x684 y772, GUI Window
}

else IfWinNotActive, Paint
{
Gui Hide
}

sleep 100
}
return

Вот текущий код. Появилась проблема - стал замечать снижение фпс. В приложении 120 фпс, со скриптом при активных таймерах становится около 90 и кисточка двигается небольшими фризами, менее заметно, но раздражает глаз. Повысить производительность скрипта можно?

30 (изменено: Странникх, 2013-11-03 23:57:59)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Как сделать отключение всех таймеров одной кнопкой?


LowIndex := 0
~X::
Num := LowIndex
Num2 := LowIndex

;Reset2: 
;Num2 := LowIndex
;SetTimer, % Num2 <= 2 ? "Hide2" : "Reset2", -100
;
;Reset:
;Num := LowIndex
;SetTimer, % Num <= 2 ? "Hide" : "Reset", -100
Return

Первый таймер отключается нормально, второй через секунду. Дело в строчках

SetTimer, % Num2 <= 1 ? "Hide2" : "Times2", -987

Значение таких строчек обрабатываются раз в 987 мс, соответственно если задать значение Num = 1 или меньше, то это сработает не сразу. А метку (label) для таймеров не повесить, чтобы можно было бы написать off
Весь день сижу над решением данной задачи, но в голову ничего не пришло.. все ломается об эти таймера

31

Re: AHK: GUI счетчик исчисления поверх GUI картинки

~X:: 
    SetTimer, Hide, Off
    SetTimer, Hide2, Off
    SetTimer, Reset, Off
    SetTimer, Reset2, Off
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

32 (изменено: Странникх, 2013-11-04 00:30:00)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Спасибо, помогло. Я был близок, я писал

SetTimer, % Num2 <= 1 ? "Hide2" : "Times2", off

, но только после вашего сообщения добавил то, что нужно.
Осталось еще пара вопросов, вот код:

#NoEnv
Process, priority, , Realtime
Process, priority, Paint, Realtime

MaxIndex := 55
Gui, Font, s30 Bold, Vtks Velhos Tempos
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0, E:\Scripts\Picture\All line v3.png
Gui Add, Text, vText x-4 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText2 x61 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Color, 0
Gui Show, NA x684 y772, GUI Window
WinSet, TransColor, 0, GUI Window
Winset, ExStyle, +0x20, GUI Window
return

~1:: 
ImageSearch: 


PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x503214, 2
if !ErrorLevel 
GoTo A

PixelSearch,,,  1187 , 1000 , 1187 , 1000 , 0x1C191F, 4
if !ErrorLevel   
GoTo A

PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x2C2C2A, 4
if !ErrorLevel 
GoTo B

PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x261B10, 2
if !ErrorLevel 
GoTo B

 SetTimer, ImageSearch, -100
return

~2::
ImageSearch2:
PixelSearch,,,  1229 , 1010 , 1229 , 1010 , 0x19354A, 4
if !ErrorLevel 
GoTo A

PixelSearch,,,  1232 , 1023 , 1232 , 1023 , 0x1E160F, 4
if !ErrorLevel 
GoTo A

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x2F2C28, 4
if !ErrorLevel 
GoTo B

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x271C10, 2
if !ErrorLevel 
GoTo B

 SetTimer, ImageSearch2, -90
return

~X:: 
    SetTimer, Times, Off
    SetTimer, Times2, Off
    SetTimer, Hide, Off
    SetTimer, Hide2, Off
    SetTimer, Reset, On
    Return

Reset:
GuiControl, Hide, Text 
GuiControl, Hide, Text2
    Gosub ImageSearch
    Gosub ImageSearch2
SetTimer, Reset, Off
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1 

A:  
    Num := MaxIndex  
    GuiControl, Show, Text 
    GoTo Times
    Return

Times:  
    SetTimer, % Num <= 1 ? "Hide" : "Times", -985
    GuiControl,, Text, % Num--
    Return

Hide:
    GuiControl, Hide, Text 
    GoTo ImageSearch
    GoTo ImageSearch2 
Return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 

    B:  
        Num2 := MaxIndex  -15
        GuiControl, Show, Text2 
        GoTo Times2
        Return

    Times2:  
        SetTimer, % Num2 <= 1 ? "Hide2" : "Times2", -987
        GuiControl,, Text2, % Num2--  
        Return
    
    Hide2:
        GuiControl, Hide, Text2
          GoTo ImageSearch
           GoTo ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




+Z::Reload


F7::
Loop
{
IfWinActive, Paint
{
Gui Show, NA x684 y772, GUI Window
}

else IfWinNotActive, Paint
{
Gui Hide
}

sleep 100
}
return

1) Как можно повысить производительность в скрипте? Ибо фпс в приложении скрипт жрет много
2) Если писать

          GoTo ImageSearch
           GoTo ImageSearch2 

то срабатывает только верхняя, нижняя не работает. Как написать правильно?

33

Re: AHK: GUI счетчик исчисления поверх GUI картинки

то срабатывает только верхняя, нижняя не работает. Как написать правильно?

Ну так, ты же их сам на разные кнопки повесил.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

34

Re: AHK: GUI счетчик исчисления поверх GUI картинки

serzh82saratov пишет:

то срабатывает только верхняя, нижняя не работает. Как написать правильно?

Ну так, ты же их сам на разные кнопки повесил.

Да, из-за парадокса пришлось поставить на кнопки, что сильно мешает. Дело в том, что если будет найден первый пиксель, то будет посылаться команда от этого первого пикселя, в данном случае GoTo A, и далее расположенные пиксели искаться не будут из таймера. А сейчас случилось ошибка из-за этого, теперь нужно поиск картинок с двух кнопок объединить  в цикл, в котором было бы так: если найден пиксель1, то послать его действие и не посылать ничего более в течении N времени. Попробовал нечто вроде этого:

ImageSearch: 
Loop
{
PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x503214, 2
if !ErrorLevel 
{
GoTo A
sleep, 55000
}

PixelSearch,,,  1187 , 1000 , 1187 , 1000 , 0x1C191F, 4
if !ErrorLevel   
{
GoTo A
sleep, 55000
}

PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x2C2C2A, 4
if !ErrorLevel 
{
GoTo B
sleep, 40000
}

PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x261B10, 2
if !ErrorLevel 
{
GoTo B
sleep, 40000
}

 
PixelSearch,,,  1229 , 1010 , 1229 , 1010 , 0x19354A, 4
if !ErrorLevel 
{
GoTo A
sleep, 55000
}

PixelSearch,,,  1232 , 1023 , 1232 , 1023 , 0x1E160F, 4
if !ErrorLevel 
{
GoTo A
sleep, 55000
}

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x2F2C28, 4
if !ErrorLevel
{ 
GoTo B
sleep, 40000
}

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x271C10, 2
if !ErrorLevel 
{
GoTo B
sleep, 40000
}

sleep 10
}
return

Но все равно какая-то фигня получается, ничего не понимаю.. да и если так сделать, то "автоматическую подгрузку" цикла:

Loop
{
IfWinActive, Paint
{
    PixelSearch,,,  684 , 775 , 684 , 775 , 0xFFFFFF
    if ErrorLevel = 0
    {
    Gui Hide
    }
    if ErrorLevel = 1
    {
    Gui Show, NA x684 y772, GUI Window
    }
}

else IfWinNotActive, Paint
{
Gui Hide
}

sleep 25
}
return

не сделаешь! Тогда этот цикл придется в конец кода на горячую клавишу биндить и активировать его уже с горячей клавиши.

35 (изменено: serzh82saratov, 2013-11-04 08:13:57)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

то послать его действие и не посылать ничего более в течении N времени. Попробовал нечто вроде этого:

Вместо GoTo, используй GoSub.
Но в целом постановка задачи так и не ясна.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

36 (изменено: Странникх, 2013-11-04 09:11:19)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Задачу я решил, пока ждал вашего ответа, думая, что вы сможете реализовать старый вариант моего решения. Я оставил также кнопки, толком ничего не изменилось.




#NoEnv
Process, priority, , Realtime
SetBatchLines, -1

MaxIndex := 55
Gui, Font, s30 Bold, Vtks Velhos Tempos
Gui -Caption +AlwaysOnTop +E0x08000000 +Lastfound
Gui Add, Picture, x0 y0, E:\Scripts\Picture\All line v3.png
Gui Add, Text, vText x-4 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText2 x61 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText3 x126 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText4 x191 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText5 x256 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText6 x319 y13 cff00e3 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText7 x382 y13 c3fdae4 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText8 x445 y13 c000cff Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText9 x507 y13 c000cff Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Add, Text, vText10 x569 y13 cDBC935 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui Color, 0
Gui Show, NA x684 y772, GUI Window
WinSet, TransColor, 0, GUI Window
Winset, ExStyle, +0x20, GUI Window

Loop
{
IfWinActive, Paint
{
    PixelSearch,,,  684 , 775 , 684 , 775 , 0xFFFFFF
    if ErrorLevel = 0
    {
    Gui Hide
    }
    if ErrorLevel = 1
    {
    Gui Show, NA x684 y772, GUI Window
    }
}

else IfWinNotActive, Paint
{
Gui Hide
}

sleep 25
}
return

~4::
ImageSearch: 
PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x503214, 2
if !ErrorLevel 
GoTo A

PixelSearch,,,  1187 , 1000 , 1187 , 1000 , 0x1C191F, 2
if !ErrorLevel   
GoTo A

PixelSearch,,,  1160 , 990 , 1160 , 990 , 0x2C2C2A, 2
if !ErrorLevel 
GoTo B

PixelSearch,,,  1185 , 998 , 1185 , 998 , 0x3A2612
if !ErrorLevel 
GoTo B

PixelSearch,,,  1155 , 1023 , 1155 , 1023 , 0x322114, 2
if !ErrorLevel 
GoTo N

PixelSearch,,,  1164 , 983 , 1164 , 983 , 0x241A0F
if !ErrorLevel 
GoTo N

PixelSearch,,,  1155 , 1023 , 1155 , 1023 , 0x121E31, 2
if !ErrorLevel 
GoTo F

PixelSearch,,,  1185 , 1026 , 1185 , 1026 , 0x8F6D48
if !ErrorLevel 
GoTo F

PixelSearch,,,  1167 , 999 , 1167 , 999 , 0xE7E7E7
if !ErrorLevel 
GoTo W

;PixelSearch,,,  1191 , 1001 , 1191 , 1001 , 0x533314
;if !ErrorLevel 
;GoTo W

ImageSearch,,, 1150, 1001, 1152, 1001, C:\Scripts\W1.bmp
if !ErrorLevel
GoTo W

PixelSearch,,,  1150 , 1025 , 1150 , 1025 , 0x351F32
if !ErrorLevel 
GoTo H

PixelSearch,,,  1155 , 1011 , 1155 , 1011 , 0x312111
if !ErrorLevel 
GoTo H

ImageSearch,,, 1156, 1011, 1157, 1011, C:\Scripts\e1.bmp
if !ErrorLevel
GoTo E

PixelSearch,,,  1153 , 1011 , 1153 , 1011 , 0x583157, 4
if !ErrorLevel 
GoTo E

PixelSearch,,,  1178 , 1025 , 1178 , 1025 , 0x5C3517, 2
if !ErrorLevel 
GoTo E

PixelSearch,,,  1159 , 986 , 1159 , 986 , 0x3F3A45
if !ErrorLevel 
GoTo Y

PixelSearch,,,  1158 , 987 , 1158 , 987 , 0x423C47
if !ErrorLevel 
GoTo Y

PixelSearch,,,  1169 , 1017 , 1169 , 1017 , 0x6A6D6E, 4
if !ErrorLevel 
GoTo T

PixelSearch,,,  1170 , 984 , 1170 , 984 , 0x4A2E12
if !ErrorLevel 
GoTo T

ImageSearch,,, 1151, 1016, 1152, 1016, C:\Scripts\C1.bmp
if !ErrorLevel
GoTo C

PixelSearch,,,  1160 , 1026 , 1160 , 1026 , 0x3C2639
if !ErrorLevel 
GoTo C

PixelSearch,,,  1180 , 1003 , 1180 , 1003 , 0x472D12, 4
if !ErrorLevel 
GoTo C

SetTimer, ImageSearch, -10
Return
 
~5::
ImageSearch2:
PixelSearch,,,  1229 , 1010 , 1229 , 1010 , 0x19354A, 2
if !ErrorLevel 
GoTo A

PixelSearch,,,  1232 , 1023 , 1232 , 1023 , 0x1E160F
if !ErrorLevel 
GoTo A

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x2F2C28, 4
if !ErrorLevel
GoTo B

PixelSearch,,,  1261 , 1007 , 1261 , 1007 , 0x523314, 1
if !ErrorLevel  
GoTo B

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x3D211A, 3
if !ErrorLevel 
GoTo N

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x251A0F
if !ErrorLevel 
GoTo N

PixelSearch,,,  1238 , 989 , 1238 , 989 , 0x204753, 2
if !ErrorLevel 
GoTo F

PixelSearch,,,  1226 , 1006 , 1226 , 1006 , 0x17354B, 2
if !ErrorLevel 
GoTo F

PixelSearch,,,  1254 , 1023 , 1254 , 1023 , 0x683F1A
if !ErrorLevel  
GoTo F

PixelSearch,,,  1266 , 997 , 1266 , 997 , 0x595856, 1
if !ErrorLevel 
GoTo W

ImageSearch,,, 1228, 1001, 1229, 1001, C:\Scripts\W0.bmp
if !ErrorLevel
GoTo W

PixelSearch,,,  1226 , 1006 , 1226 , 1006 , 0x5D4F29, 2
if !ErrorLevel 
GoTo W

PixelSearch,,,  1230 , 991 , 1230 , 991 , 0x2C1E12
if !ErrorLevel 
GoTo H

PixelSearch,,,  1253 , 1022 , 1253 , 1022 , 0x5B3817
if !ErrorLevel 
GoTo H

PixelSearch,,,  1229 , 982 , 1229 , 982 , 0x331031
if !ErrorLevel 
GoTo E

PixelSearch,,,  1244 , 1011 , 1244 , 1011 , 0x666366, 2
if !ErrorLevel 
GoTo E

PixelSearch,,,  1243 , 993 , 1243 , 993 , 0x271B0F
if !ErrorLevel 
GoTo E

PixelSearch,,,  1254 , 1023 , 1254 , 1023 , 0x5D3B1F
if !ErrorLevel 
GoTo Y

PixelSearch,,,  1246 , 988 , 1246 , 988 , 0x372411
if !ErrorLevel 
GoTo Y

PixelSearch,,,  1250 , 984 , 1250 , 984 , 0x36565F
if !ErrorLevel 
GoTo T

PixelSearch,,,  1235 , 993 , 1235 , 993 , 0x18364E, 2
if !ErrorLevel 
GoTo T

PixelSearch,,,  1248 , 987 , 1248 , 987 , 0x4B2F12
if !ErrorLevel
GoTo T

PixelSearch,,,  1256 , 1012 , 1256 , 1012 , 0x48363B
if !ErrorLevel 
GoTo C

PixelSearch,,,  1237 , 1014 , 1237 , 1014 , 0x3A2612
if !ErrorLevel 
GoTo C

SetTimer, ImageSearch2, -10
return


~G:: 
PixelSearch,,,  1491 , 1014 , 1491 , 1014 , 0x44A375, 3
if ErrorLevel = 0
{
    SetTimer, Times, Off
    SetTimer, Times2, Off
    SetTimer, Times3, Off
    SetTimer, Times4, Off
    SetTimer, Times5, Off
    SetTimer, Times6, Off
    SetTimer, Times7, Off
    SetTimer, Times8, Off
    SetTimer, Times9, Off
    SetTimer, Times10, Off
    SetTimer, Hide, Off
    SetTimer, Hide2, Off
    SetTimer, Hide3, Off
    SetTimer, Hide4, Off
    SetTimer, Hide5, Off
    SetTimer, Hide6, Off
    SetTimer, Hide7, Off
    SetTimer, Hide8, Off
    SetTimer, Hide9, Off
    SetTimer, Hide10, Off

    SetTimer, Reset, On
}
Return

Reset:
GuiControl, Hide, Text 
GuiControl, Hide, Text2
GuiControl, Hide, Text3
GuiControl, Hide, Text4
GuiControl, Hide, Text5
GuiControl, Hide, Text6
GuiControl, Hide, Text7
GuiControl, Hide, Text8
GuiControl, Hide, Text9
GuiControl, Hide, Text10
    SetTimer, Reset, Off
return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1 

A:  
    Num := MaxIndex  
    GuiControl, Show, Text 
    GoTo Times
    Return

Times:  
    SetTimer, % Num <= 1 ? "Hide" : "Times", -985
    GuiControl,, Text, % Num--
    Return

Hide:
    GuiControl, Hide, Text 
    GoSub ImageSearch
    GoSub ImageSearch2 
Return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 

    B:  
        Num2 := MaxIndex  -15
        GuiControl, Show, Text2 
        GoTo Times2
        Return

    Times2:  
        SetTimer, % Num2 <= 1 ? "Hide2" : "Times2", -987
        GuiControl,, Text2, % Num2--  
        Return
    
    Hide2:
        GuiControl, Hide, Text2
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3 

    N:  
        Num3 := MaxIndex  -35
        GuiControl, Show, Text3 
        GoTo Times3
        Return

    Times3:  
        SetTimer, % Num3 <= 1 ? "Hide3" : "Times3", -990
        GuiControl,, Text3, % Num3--  
        Return
    
    Hide3:
        GuiControl, Hide, Text3
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4 

    F:  
        Num4 := MaxIndex  -25
        GuiControl, Show, Text4 
        GoTo Times4
        Return

    Times4:  
        SetTimer, % Num4 <= 1 ? "Hide4" : "Times4", -988
        GuiControl,, Text4, % Num4--  
        Return
    
    Hide4:
        GuiControl, Hide, Text4
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 5 -

    W:  
        Num5 := MaxIndex  -30
        GuiControl, Show, Text5 
        GoTo Times5
        Return

    Times5:  
        SetTimer, % Num5 <= 1 ? "Hide5" : "Times5", -988
        GuiControl,, Text5, % Num5--  
        Return
    
    Hide5:
        GuiControl, Hide, Text5
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 6

    H:  
        Num6 := MaxIndex  -25
        GuiControl, Show, Text6 
        GoTo Times6
        Return

    Times6:  
        SetTimer, % Num6 <= 1 ? "Hide6" : "Times6", -988
        GuiControl,, Text6, % Num6--  
        Return
    
    Hide6:
        GuiControl, Hide, Text6
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 7 

    E:  
        Num7 := MaxIndex  -25
        GuiControl, Show, Text7 
        GoTo Times7
        Return

    Times7:  
        SetTimer, % Num7 <= 1 ? "Hide7" : "Times7", -988
        GuiControl,, Text7, % Num7--  
        Return
    
    Hide7:
        GuiControl, Hide, Text7
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 8 

    Y:  
        Num8 := MaxIndex  -40
        GuiControl, Show, Text8 
        GoTo Times8
        Return

    Times8:  
        SetTimer, % Num8 <= 1 ? "Hide8" : "Times8", -995
        GuiControl,, Text8, % Num8--  
        Return
    
    Hide8:
        GuiControl, Hide, Text8
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 9 

    T:  
        Num9 := MaxIndex  -25
        GuiControl, Show, Text9 
        GoTo Times9
        Return

    Times9:  
        SetTimer, % Num9 <= 1 ? "Hide9" : "Times9", -988
        GuiControl,, Text9, % Num9--  
        Return
    
    Hide9:
        GuiControl, Hide, Text9
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10

    C:  
        Num10 := MaxIndex  -20
        GuiControl, Show, Text10 
        GoTo Times10
        Return

    Times10:  
        SetTimer, % Num10 <= 1 ? "Hide10" : "Times10", -987
        GuiControl,, Text10, % Num10--  
        Return
    
    Hide10:
        GuiControl, Hide, Text10
          GoSub ImageSearch
           GoSub ImageSearch2 
    Return

        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


+Z::Reload


Осталось кнопки добавить и решить проблему с изображениями. Не знаю почему, но такое ощущение, что некоторые изображения иногда меняют свой цвет в результате чего просто не ищутся, хотя пиксели являются рабочими.. . Я предполагаю тут три причины: 1) сам редактор(приложение) меняет их цвет; 2) AHK из-за большого объема поиска изображений не находит последние, первые всегда находятся; 3) Баг в коде языка AHK. Самое, что забавное, когда обнаруживаешь, что пиксель не работает, то делаешь новый, а через некоторое время и этот пиксель перестает работать, аналогично с поиском картинок... сижу уже так 2-3 дня, больше склоняюсь ко второму или третьему варианту, потому что, когда я делал отдельный скрипт для проверки изображений на смену ихнего цвета приложением, скрипт всегда их находил, не было такого, чтобы не находил.

37

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Поднимая старую тему, как сделать блокировку цикла счетчика до тех пор пока он не закончит исчисление, чтобы случайно повторно не запустить таймер?


MaxIndex := 20

Gui, 5: Font, s31 Bold, BatmanForeverAlternate
Gui, 5: -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui, 5: Margin, 0, 0
Gui, 5: Add, Picture,, E:\Scripts\Bind.png
Gui, 5: Add, Text, vText520 x10 y5 c5fcaf1 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui, 5: Show, NA x127 y400, Bind5

~LButton::
ImageSearch: 
{
ImageSearch, FoundX, FoundY, 933, 966, 975, 992, C:\Scripts\a.bmp
if ErrorLevel = 1
{
ImageSearch, FoundX, FoundY, 940, 963, 954, 967, C:\Scripts\a2.bmp
if ErrorLevel = 1
{
GoTo BIND520
}
}
}
return

BIND520: 
    Num520 := MaxIndex  
    GuiControl, 5: Show, Text520 
    GoTo Times520
    Return

Times520:  
    SetTimer, % Num520 <= 1 ? "Hide520" : "Times520", -1000
    GuiControl, 5:, Text520, % Num520--
    Return

Hide520:
    GuiControl, 5: Hide, Text520 
    Gosub ImageSearch
Return

Насчет проблемы с альт-табом, когда GUI окно пропадало под другими окнами, решил следующим образом:

~!Tab::
{
Gui, 5: +Lastfound +AlwaysOnTop
WinSet, Top,, Bind5        
WinSet, Topmost, On, Bind5
}

С пиксельпоиск до сих пор осталась беда, хотя поиск по картинке работает нормально.

38 (изменено: Странникх, 2014-04-01 22:06:43)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Недолго думая кое-что придумал. Добавил переменную block.

MaxIndex := 20

block := 0

Gui, 5: Font, s31 Bold, BatmanForeverAlternate
Gui, 5: -Caption +AlwaysOnTop +E0x08000000 +Lastfound 
Gui, 5: Margin, 0, 0
Gui, 5: Add, Picture,, E:\Scripts\Bind.png
Gui, 5: Add, Text, vText520 x10 y5 c5fcaf1 Center BackgroundTrans Hidden, % " " MaxIndex " "
Gui, 5: Show, NA x127 y400, Bind5

~LButton::
ImageSearch: 
{
ImageSearch, FoundX, FoundY, 933, 966, 975, 992, C:\Scripts\a.bmp
if ErrorLevel = 1
{
ImageSearch, FoundX, FoundY, 940, 963, 954, 967, C:\Scripts\a2.bmp
if ErrorLevel = 1
{
if block = 0
GoTo BIND520
}
}
}
return

BIND520: 
    block = 1
    Num520 := MaxIndex  
    GuiControl, 5: Show, Text520 
    GoTo Times520
    Return

Times520:  
    SetTimer, % Num520 <= 1 ? "Hide520" : "Times520", -1000
    GuiControl, 5:, Text520, % Num520--
    Return

Hide520:
    GuiControl, 5: Hide, Text520 
    block = 0 
    Gosub ImageSearch
Return

Появилась еще проблема. У меня в условиях скрипта стоит Hide всех GUI если неактивно одно окно (пусть его имя будет N). Если окно активно, то GUI появляется вновь. Так вот, если на GUI был таймер, то при вновь его появлении этого таймера не станет. Подкиньте какой-нибудь помощи, чтобы сохранить этот таймер во время неактивного N окна.

39

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Недолго думая кое-что придумал. Добавил переменную block.

Не проще проверять имеющуюся  Num520  на то что она больше 1?

Так вот, если на GUI был таймер, то при вновь его появлении этого таймера не станет. Подкиньте какой-нибудь помощи, чтобы сохранить этот таймер во время неактивного N окна.

Не до конца понятно, что значит не станет. Если про то чтобы таймер прекращал отсчёт, то выключайте его при скрытии. При активации запускайте снова, только переменную Num520 не надо менять.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

40 (изменено: Странникх, 2014-04-02 00:27:58)

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Не проще проверять имеющуюся  Num520  на то что она больше 1?

Даже не знаю как это сделать.. в loop цикл только если засунуть или шаманить с SetTimer.

Не до конца понятно, что значит не станет. Если про то чтобы таймер прекращал отсчёт, то выключайте его при скрытии. При активации запускайте снова, только переменную Num520 не надо менять.

Это сейчас и происходит. Он запускает отсчет опять сначала, а должен сохранять его. Может я не понятно описываю, попробую на примере: Есть окно NAME поверх него находится GUI картинка моего скрипта, она отображается только если активно NAME окно. Я нажимаю AltTab и у меня открывается браузер Chrome, GUI картинка пошла в состояние Hide. Я нажимаю AltTab и возвращаюсь к своему окну NAME где скрипт ставит чистую GUI картинку без таймера, либо запускает таймер сначала в зависимости от нахождения картинки.
А мой вопрос состоит в том, чтобы после возвращения к своему NAME окну показывалась GUI картинка с продолжающим отсчет таймер, либо с закончившимся отсчетом (т.е. чистая картинка). Грубо говоря нужно сделать так, чтобы таймер продолжал вести отсчет даже если GUI находится в Hide и после, если открыто NAME окно, показывал (продолжал) отсчет таймера.

41

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Даже не знаю как это сделать.. в loop цикл только если засунуть или шаманить с SetTimer.

 ~LButton::
ImageSearch: 
If Num520
return
ImageSearch, FoundX, FoundY, 933, 966, 975, 992, C:\Scripts\a.bmp
if ErrorLevel
{
ImageSearch, FoundX, FoundY, 940, 963, 954, 967, C:\Scripts\a2.bmp
if ErrorLevel
GoTo BIND520
}
return

Это сейчас и происходит. Он запускает отсчет опять сначала, а должен сохранять его. Может я не понятно описываю, попробую на примере:...

Лучше на примере своего кода, ибо я вам всё объяснил.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

42

Re: AHK: GUI счетчик исчисления поверх GUI картинки

Проблема была в неправильно заданных мною переменных. Вы все правильно объяснили, там мой косяк.