Bom dia Jrufino.
Os números de ordem dos ClassNN (tipo edit
5 ou edit
7) normalmente são automáticos e sua ordem normalmente é a mesma ordem à qual os controles foram adicionados à janela pelo programa-alvo. Sendo assim algum comportamento do programa pode estar criando ou recriando os campos em ordens ou quantidades diferentes na tela-alvo.
então que queria saber se tem como eu pegar automaticamente os de todos os campos do programa e gravar talvez em um array para poder eliminar esse monde de código repetido e fazer somente um bloco de if.....
Faltou uma palavra aí após "os". Mas se o que quiz dizer foi "os nomes" (ou "os ClassNNs"), então você pode usar o comando WinGet com o parâmetro ControlList para isso.
Exemplo : No código abaixo, altere o nome da janela-alvo (determinado via windowspy) e veja se de fato consegue recuperar os nomes dos ClassNN dos controles.
Code: Select all
WinGet, Lista_de_controles, ControlList, NOME_DA_JANELA_ALVO ; altere aqui com o nome da janela-alvo desejada obtido através do WindowSpy.
msgbox % Lista_de_controles
Para referência de consultas futuras: WindowSpy é uma ferramenta embutida no autohotkey. Você pode acessá-la da seguinte forma: quando um script está em execução no computador, um ícone de H verdade aparecerá no canto inferior-direito da tela (se não aparecer, você deve clicar na seta que mostra os ícones ocultos no canto-inferior direito da tela). Ao clicar com o botão direito do mouse em cima do ícone de H verde, uma das opções é o WindowSpy. O WindowSpy é uma ferramente que mostra os dados ocultos das janelas e dos controles aberto. Clique em "follow mouse" e coloque o mouse em cima do controle de janela que quiser obter as informações (tais como o ClassNN) e elas serão mostradas na tela do WindowSpy.