3

У меня есть небольшой скрипт, который фокусирует открытую программу (Блокнот), а затем ждет секунду, прежде чем отправить программе функцию 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 ответ1

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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .