带有 sendkeys 的 vbs 脚本(错误)

带有 sendkeys 的 vbs 脚本(错误)

我有一个小脚本,它可以将打开的程序(记事本)置于焦点,然后等待一秒钟,再将函数发送给该程序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"

相关内容