のキーコンボを送信する簡単なスクリプトを作成しようとしています CTRL+WINDOWS KEY+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 次に、上記のスクリプトの1つを使用しますか?
誰かがここ数年ここに着陸した場合に備えて...
(キーストロークを送信する代わりに)回避策は、アプリケーションを直接呼び出すことです。
Set objShell = CreateObject("Shell.Application")
objShell.WindowSwitcher
これにより、Task Switcher
Windowsアプリが開きます。 (と同じ ⊞ windows+TAB)
このコードを試してください:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "+(^{LWIN}{TAB})"
あなたの質問は XY問題 の例だと思います。実際にやりたいのは、Flip 3D(ウィンドウの切り替え)をアクティブにすることです。 rundll32 DwmApi #105
コマンドを実行することにより、プログラムでこれを行うことができます。
CreateObject("WScript.Shell").Run "rundll32 DwmApi #105"
あなたがVBscriptを探していることは知っていますが、それはありそうもないようです(純粋なVBscript)。これは、C#を介してこれを解決した投稿です。
https://stackoverflow.com/a/10367832/1742115
このページ これの一部をvbsに保持する場合は、VBscriptからC#DLLを呼び出す方法を説明します。