WinForms、C#、AxMsTscNotSafeForScripting ツールを使用して小さなクライアントを作成し、VM で Win+R を送信する必要があります (はい、RunDialog を使用せずにアプリをリモートで起動する方法がありますが、そうする必要があります)。という名前の素敵なライブラリをすぐに見つけましInputSimulator
た。これは、メイン マシンですべてを正しくシミュレートしますが、VM には影響しません。
実際には、全体string
をメモ帳に送信できますが、VirtualKeyCodes を処理するときは何も起こりません。Google をもう少し深く掘り下げた後、WindowsAPI.SendInput
with methods
の使用法を見つけまし
void PressKey(char ch, bool press)
void KeyDown(ushort scanCode)
void KeyUp(ushort scanCode)
た。
PressKey
は VM で動作していますが、KeyDown
必要KeyUp
な と が正しくありません。たとえば、81 は「Q」の ScanCode ですが、「.」と出力されます。メモ帳では、82 は "R" ですが、"0" になり、91 では何も表示されません。これは Windows キーです。キーボードでキーを押すと、すべてが機能するため、KeyPreview、EnableWindowsKey などの設定に問題はありません。どちらのシステムも Win7、Oracle VM VirtualBox です。
私の方法が絶望的であっても、プログラムで Win+R を VM に送信する別の方法は何ですか? 助けていただければ幸いです。