Search code examples
windowsvbscriptsendkeyskeystroke

VBScript SendKeys CTRL+LWIN+TAB?


I am trying to write a simple script that will send the key combo of CTRL+WINDOWS KEY+TAB. The code below sends the keys CTRL+ALT+TAB

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

However when I try to replace "%" (aka the ALT key) with LWIN (aka the Left Windows Key) it says Syntax Error.

I tried the following, but had no luck:

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}

I know it has something to do with being able to Hold certain keys while other keys are pressed but I can't seem to get it right.

The windows key can be pressed programmatically using CTRL+ESC. Is there a way to set this combination as a variable called LWIN and then use one of the above Scripts?


Solution

  • Just in case someone land here on these years...
    A workaround (instead of sending keystrokes) is to call directly to the application:

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

    This will open Task Switcher Windows App. (Same as ⊞ windows+TAB)