VBScript sendkeys,尝试做CTRL + ALT + A.

时间:2017-06-02 15:05:17

标签: vbscript key combinations sendkeys

我正在我们的课程中测试用于语音合成的Lexibar软件。 这种软件旨在帮助有学习困难的学生,所以我需要写一个模拟 Ctrl + Alt + A 的VBS文件

我试过了:

  • wshshell.sendkeys“^%{a}”
  • “^%一个”
  • “^%{A}”
  • “^%A”
  • “^(%A)”
  • “^(%的(a))”
  • ...(但没有任何效果)

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

是否被阻止( Ctrl + Alt + Del 被阻止)。

3 个答案:

答案 0 :(得分:0)

您应该像Map一样使用它。

您可以使用^%{a}方法将焦点放在要发送击键的应用程序上。

在您的情况下,它应该像AppActivate

详细了解WshShell.AppActivate("MUST BE THE WINDOW YOU NEED TO SEND KEYSTROKES TO") here.

答案 1 :(得分:0)

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

document.getElementById('iFrame').contentWindow.document.getElementById('x');

我使用PS2EXE 0.5.1将脚本转换为exe(SendKeys.exe),然后从此代码运行它:

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

我需要从vbs运行它以避免窗口弹出。 我使用Vbs_To_exe来转换这个,现在它可以正常工作。 (转换为.exe仅用于安全,隐藏我的代码)

答案 2 :(得分:0)

这些是我使用的命令:

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

您可以在有或没有WshShell.AppActivate的情况下使用它,这取决于您。

这对我来说很好。