VBScript SendKeys CTRL + LWIN + TAB?

时间:2012-10-13 22:20:33

标签: windows vbscript sendkeys keystroke

我正在尝试编写一个简单的脚本,它将发送 CTRL + WINDOWS KEY + TAB 的组合键。下面的代码发送密钥 CTRL + ALT + TAB

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

但是当我尝试用 LWIN (又称左Windows键)替换“%”(又名 ALT 键)时,它会显示语法错误。

我尝试了以下内容,但没有运气:

Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys "^{LWIN}{TAB}"

Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys "^{LWIN}+{TAB}"

Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys ^{LWIN}+{TAB}

我知道这与在按下其他按键时能够按住某些按键有关,但我似乎无法做到正确。

可以使用 CTRL + ESC 以编程方式按下Windows键。有没有办法将此组合设置为名为 LWIN 的变量,然后使用上述脚本之一?

4 个答案:

答案 0 :(得分:4)

试试这段代码:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "+(^{LWIN}{TAB})"

答案 1 :(得分:4)

以防这些年有人降落在这里...... 解决方法(而不是发送击键)是直接调用应用程序:

Set objShell = CreateObject("Shell.Application")
objShell.WindowSwitcher

这将打开Task Switcher Windows应用。 (与⊞windows + TAB 相同)

答案 2 :(得分:1)

我知道你正在寻找VBscript,但看起来不太可能(纯VBscript)。这是一篇通过C#解决了这个问题的帖子。

https://stackoverflow.com/a/10367832/1742115

This page告诉你如何在VB中保存一些这样的C#DLL。

答案 3 :(得分:1)

我认为您的问题是XY problem的示例,您实际想要做的是激活Flip 3D(在窗口之间切换)。您可以通过执行rundll32 DwmApi #105命令以编程方式执行此操作:

CreateObject("WScript.Shell").Run "rundll32 DwmApi #105"