vbs script com sendkeys (erro)

3

Eu tenho um pequeno script que traz um programa aberto (Bloco de Notas) para o foco e, em seguida, aguarda um segundo antes de enviar ao programa a função CTRL S . Este script funciona 50% do tempo, enquanto o resto do tempo o script comete um erro e realmente envia uma letra maiúscula diretamente para o arquivo .txt que estou editando, em vez de enviar CTRL S (que é o comando para salvar).

Abaixo está o conteúdo do script:

' Create WScript Shell Object to access filesystem.
Set WshShell = WScript.CreateObject("WScript.Shell")

' Select, or bring Focus to a window named 'NOTEPAD'
WshShell.AppActivate "Notepad"

WScript.Sleep 1000

WshShell.SendKeys "^s"

Alguém pode me dizer como esse erro está ocorrendo? Eu pensei que talvez fosse porque eu tinha CAPSLOCK, mas esse não era o caso.

executando o Windows & 64 bits.

    
por Kalamalka Kid 22.04.2017 / 12:04

1 resposta

1

Ok, então. Eu sei que essa extrema pirataria não faz sentido, mas funcionou o tempo todo para mim, então você provavelmente deveria tentar:

' Create WScript Shell Object to access filesystem.
Set WshShell = WScript.CreateObject("WScript.Shell")

' Select, or bring Focus to a window named 'NOTEPAD'
WshShell.AppActivate "Notepad"
WScript.Sleep 1500
' Minimize
WshShell.SendKeys "% n"
WshShell.AppActivate "Notepad"
WScript.Sleep 1500
' Maximize
WshShell.SendKeys "% x"
WshShell.AppActivate "Notepad"
WScript.Sleep 1500
' Restore
WshShell.SendKeys "% r"
WshShell.AppActivate "Notepad"
WScript.Sleep 1500
' MAGIC!
WshShell.SendKeys "^s"
    
por 25.04.2017 / 15:44