VBS скрипт с sendkeys (ошибка)
У меня есть небольшой скрипт, который фокусирует открытую программу (Блокнот), а затем ждет секунду, прежде чем отправить программе функцию CTRL S
, Этот сценарий работает 50% времени, в то время как в остальное время он делает ошибку и фактически отправляет заглавную букву S прямо в файл.txt, который я редактирую, а не отправляю CTRL S
(это команда для сохранения).
Ниже приводится содержание сценария:
' 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"
Может кто-нибудь сказать мне, как эта ошибка происходит? Я подумал, что, возможно, это потому, что у меня был CAPSLOCK, но это не так.
Под управлением Windows & 64 бит.
1 ответ
Решение
Хорошо, итак. Я знаю, что эта крайняя хакерская атака не имеет никакого смысла, но она каждый раз срабатывает для меня, так что вы, вероятно, должны попробовать это:
' 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"