VBScript SendKeys CTRL+LWIN + TAB?
Я пытаюсь написать простой скрипт, который отправит комбинацию клавиш CTRL+КЛАВИША WINDOWS+TAB. Код ниже отправляет ключи CTRL+ALT+TAB
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "^%{TAB}"
однако, когда я пытаюсь заменить " % "(он же ALT ключ) с LWIN (он же левый ключ Windows) он говорит синтаксическую ошибку.
Я пробовал следующие, но не удача:
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}
Я знаю, что это как-то связано с возможностью удерживать определенные клавиши, в то время как другие клавиши нажаты, но я не могу понять это правильно.
клавиша windows может быть нажата программно с помощью CTRL+ESC. Есть ли способ установить эту комбинацию как переменную с именем LWIN а затем использовать один из вышеуказанных сценариев?
4 ответов
на всякий случай, если кто-то приземлится здесь в эти годы...
Обходным путем (вместо отправки нажатий клавиш) является вызов непосредственно в приложение:
Set objShell = CreateObject("Shell.Application")
objShell.WindowSwitcher
откроется Task Switcher
Приложение Windows. (То же самое, что windows окна+TAB)
попробуйте этот код:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "+(^{LWIN}{TAB})"
Я знаю, что вы ищете VBscript, но похоже, что это маловероятно (чистый VBscript). Вот сообщение, которое решило это через C#.
https://stackoverflow.com/a/10367832/1742115
на этой странице рассказывает, как вызвать DLL C# из вашего VBscript, если вы хотите сохранить некоторые из них в vbs.
Я думаю, что ваш вопрос-это пример проблема по XY и то, что вы на самом деле хотите сделать, это активировать Flip 3D (переключение между окнами). Вы можете сделать это программно, выполнив :
CreateObject("WScript.Shell").Run "rundll32 DwmApi #105"