Post by Gio » 17 Aug 2020, 18:35
Boa tarde Josueh.
Segue um exemplo utilizando o ControlSend. Abra uma nova janela do bloco de notas (cujo título conterá "Sem título") e depois deixe-a aberta e em segundo plano (ou seja, clique em outra janela ao invés de minimizá-la) sem salvar o documento. Depois, execute o script abaixo e aperte F2 algumas vezes. Depois, clique na janela novamente e veja se a mensagem foi escrita.
Code: Select all
F2::
SetTitleMatchMode, 2 ; Isto é só porque após a primeira mensagem o título da janela acrescente um asterisco antes, então usamos o SetTitleMatchMode em 2 para encontrá-lo também.
ControlSend, , mensagem escrita com sucesso, Sem título
SetTitleMatchMode, 1
Return
Segue outro exemplo, dessa vez usando PostMessage para escrever a mensagem "exemplo" letra a letra usando mensagens WM_KeyDown enviadas diretamente para a janela do Bloco de Notas. Abra o bloco de notas sem salvar da mesma forma como fez antes, execute o scritp abaixo e clique o F2 algumas vezes (esperando aproximadamente 2 segundos entre os cliques). Depois veja se foi escrito no notepad a mensagem "exemplo" algumas vezes.
Code: Select all
F2::
SetTitleMatchMode, 2
PostMessage, 0x100, 0x45,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x58,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x45,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x4d,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x50,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x4c,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x4f,,Edit1, Sem título
Sleep 100
SetTitleMatchMode, 1
Return
No código acima, 0x100 é o
código da mensagem WM_KeyDown, e 0x45 (por exemplo) é o
código VK da letra "e" (por isso foi usado na primeira e na terceira chamadas ao comando PostMessage, já que "exemplo" contém o "e" na primeira e na terceira letra). Cada comando de tecla possui um código VK diferente.
Tente usar o código acima conforme descrito. Depois, tente modificá-lo. E se depois ainda tiver alguma dúvida, basta postar abaixo
Boa tarde Josueh.
Segue um exemplo utilizando o ControlSend. Abra uma nova janela do bloco de notas (cujo título conterá "Sem título") e depois deixe-a aberta e em segundo plano (ou seja, clique em outra janela ao invés de minimizá-la) sem salvar o documento. Depois, execute o script abaixo e aperte F2 algumas vezes. Depois, clique na janela novamente e veja se a mensagem foi escrita.
[code]F2::
SetTitleMatchMode, 2 ; Isto é só porque após a primeira mensagem o título da janela acrescente um asterisco antes, então usamos o SetTitleMatchMode em 2 para encontrá-lo também.
ControlSend, , mensagem escrita com sucesso, Sem título
SetTitleMatchMode, 1
Return[/code]
Segue outro exemplo, dessa vez usando PostMessage para escrever a mensagem "exemplo" letra a letra usando mensagens WM_KeyDown enviadas diretamente para a janela do Bloco de Notas. Abra o bloco de notas sem salvar da mesma forma como fez antes, execute o scritp abaixo e clique o F2 algumas vezes (esperando aproximadamente 2 segundos entre os cliques). Depois veja se foi escrito no notepad a mensagem "exemplo" algumas vezes.
[code]F2::
SetTitleMatchMode, 2
PostMessage, 0x100, 0x45,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x58,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x45,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x4d,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x50,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x4c,,Edit1, Sem título
Sleep 100
PostMessage, 0x100, 0x4f,,Edit1, Sem título
Sleep 100
SetTitleMatchMode, 1
Return[/code]
:arrow: No código acima, 0x100 é o [url=https://www.autohotkey.com/docs/misc/SendMessageList.htm]código da mensagem WM_KeyDown[/url], e 0x45 (por exemplo) é o [url=https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes]código VK[/url] da letra "e" (por isso foi usado na primeira e na terceira chamadas ao comando PostMessage, já que "exemplo" contém o "e" na primeira e na terceira letra). Cada comando de tecla possui um código VK diferente.
Tente usar o código acima conforme descrito. Depois, tente modificá-lo. E se depois ainda tiver alguma dúvida, basta postar abaixo :thumbup: