質問: Windows10 ProでVirtualbox5.2.16を利用しています。 ゲストOSを起動した後、ゲストOS側のウインドゥに対して、WSHからSendKeysを使って制御を行ないたいのですがうまくいきません。 書き方が間違っているのでしょうか。それとも、他の方法でないと動かないのでしょうか。 教えてください。 ### 前提・実現したいこと 実現したいこと: ゲストOS側のウインドゥに対するホストキー(例えばHost+Fでフル画面化)を自動的に押してやりたい ### 発生している問題・エラーメッセージ 送ったキーストロークが、「ゲストOSを開いているウインドゥ」ではなく「ゲストOS」に渡されているらしく、ホストキーの操作として認識されない (例えばHost+Fでフル画面化したいのに、ゲストOS側で「Alt+F」が押されたとしか認識していない様子) ### 該当のソースコード WSH(JScript)で以下のように書いています。 (※HostキーはAltキーに割り当てています) WshShell=new ActiveXObject("WScript.Shell"); WshShell.AppActivate("ゲストOS"); WScript.Sleep(1000); WshShell.SendKeys("%f"); ### 試したこと 上記のソースコードで、ゲストOS側のウインドゥはきちんとアクティブになっています。 その状態で、実際にキーボードでAlt+Fを押すと、フル画面化されます。 なお、コマンドラインからvbmanage.exeでkeyboardputscancodeオプションを使い、キーストロークを直接送信してみることもしましたが、同様に「ゲストOSの中で入力された」動作になってしまうだけで、「ゲストOSのウインドゥに対するキーストローク」にはなってくれませんでした。
回答: VirtualBoxは使ったこと無いですが、VMwareでは、ウィンドウをアクティブにしただけではゲスト内のウィンドウはイベント受け取れず、一度ウィンドウ内部をマウスクリックする必要があります。 同じようなことになっているのではないでしょうか。 VirtualBoxがアクティブでない状態で、ALT-TabなどでVirtualBoxをアクティブにした直後の状態で、キーを押してゲストOSにイベントが送られますか?