VBScript sendkeys,试图做 CTRL+ALT+A

VBScript sendkeys, Trying to do CTRL+ALT+A

我正在学校董事会测试用于语音合成的 Lexibar 软件。 这种软件是为了帮助有学习困难的同学设计的,所以我需要写一个VBS文件来模拟Ctrl+Alt+A.

我试过了:

如果我尝试 wshshell.sendkeys "^%{down}" -> 屏幕旋转但我无法发送 Ctrl+Alt +A.

是否被屏蔽(Ctrl+Alt+Del被屏蔽)

你应该像 ^%{a} 一样使用它。

您可以使用 AppActivate 方法将焦点放在要将击键发送到的应用程序上。

在你的情况下,它应该像 WshShell.AppActivate("MUST BE THE WINDOW YOU NEED TO SEND KEYSTROKES TO")

了解更多关于 SendKeys here.

我现在使用 powershell,效果很好。 使用 VBS,它工作一次,然后就停止工作了。这是我的代码 运行:

[void][reflection.assembly]::loadwithpartialname("system.windows.forms")
[system.windows.forms.sendkeys]::sendwait("^%a")

我使用 PS2EXE 0.5.1 将脚本转换为 exe (SendKeys.exe),然后我 运行 通过以下代码将其转换为:

Set wshShell = WScript.CreateObject("WScript.Shell")
wshShell.run "C:\Lexibar\SendKeys.exe",0

我需要从 vbs 运行 它以避免 windows 弹出。 我用 Vbs_To_exe 来转换这个,现在它可以工作了。 (转换为.exe只是为了安全,对学生隐藏我的代码)

这些是我用过的命令:

Set WshShell = WScript.CreateObject("WScript.Shell")                     
WshShell.SendKeys "^%{a}"

有无WshShell.AppActivate均可使用,由您决定。

这对我很有用。