Page 1 of 1

Problema Threads ou quebrando while

Posted: 04 Aug 2023, 08:13
by gilberto_san
Caros amigos, estou tendo um problema talvez esteja deixando algo passar conceitualmente.

Tenho um script que verifica 2 icones na tela usando a biblioteca FindText . E tenho um procedimento que faz uma checagem a a cada x segundos através do SetTimer.
Se a checagem for verdadeira ele realiza uma acao e volta a verificar os 2 icones. Como os dos icones precisam ser clicados em sequencias fiz o seguinte coloquei um while icone1 ou seja em enquanto o icone 1 estive na tela faça determinada ação. O problema é que se a checagem do settimer se ativar ele quebra esse loop.
e vai pro icone 2. Acho que isso é um problema de Trhead ne?
tentei até ajustar o #MaxThreads mas sem sucesso

Code: Select all

#Persistent
#SingleInstance Force
#Include, <FindText>
#MaxThreads 50
#MaxThreadsPerHotkey, 50
#InstallMouseHook
SetWorkingDir %A_ScriptDir%

SetTimer, check_aplication, 2000

While 1
{
	Text:="|<>**50$22.0ww06Kk0Fl01U43y0TrkkyMDkN1nVb66CAk9ln1b666CERkNUy1bk1yDU7k6AM0NtU1zy03rk8"
	While (icon1:=FindText(X, Y, 911-150000, 1060-150000, 911+150000, 1060+150000, 0, 0, Text))
	{
	  ; tenho varios itens de configuração do servidor aqui
	}
	
	
	Text:="|<>**50$19.TzzM00w00H00ss0tC0ntlnyRrxnbSQ6D3y7UQ3k01jzzc"
	While (icon2:=FindText(X, Y, 204, 156, 1157, 662, 0, 0, Text))
	{
  		;funções de envio de mensagens ao usuário
	}
}
return

check_aplication:
{
; aqui faço um teste na aplicação de tempos em tempos para ver se está em conexão de base
}
return

Re: Problema Threads ou quebrando while

Posted: 18 Feb 2024, 06:47
by Encrypton
bom dia

Code: Select all

#Persistent
#SingleInstance Force
#Include, <FindText>
#MaxThreads 50
#MaxThreadsPerHotkey, 50
#InstallMouseHook
SetWorkingDir %A_ScriptDir%

check_icons := true  ; variável de controle para verificar os ícones

SetTimer, check_aplication, 2000

While 1
{
    if (check_icons) {
        Text:="|<>**50$22.0ww06Kk0Fl01U43y0TrkkyMDkN1nVb66CAk9ln1b666CERkNUy1bk1yDU7k6AM0NtU1zy03rk8"
        While (icon1:=FindText(X, Y, 911-150000, 1060-150000, 911+150000, 1060+150000, 0, 0, Text))
        {
            ; tenho varios itens de configuração do servidor aqui
        }
        
        
        Text:="|<>**50$19.TzzM00w00H00ss0tC0ntlnyRrxnbSQ6D3y7UQ3k01jzzc"
        While (icon2:=FindText(X, Y, 204, 156, 1157, 662, 0, 0, Text))
        {
            ;funções de envio de mensagens ao usuário
        }
    }
}

return

check_aplication:
{
    check_icons := false  ; desativa a verificação dos ícones temporariamente
    
    ; aqui faço um teste na aplicação de tempos em tempos para ver se está em conexão de base
    
    check_icons := true  ; reativa a verificação dos ícones
}

return