リモートデスクトップセッションで実行されているアプリケーションに偽のキーボード入力を送信しようとしています。私が使用しているもの:
Byte key = Ord("A");
keybd_event(key, 0, 0, 0); // key goes down
keybd_event(key, 0, KEYEVENTF_KEYUP, 0); // key goes up
これで、このコードは文字「a」を任意のローカルウィンドウに送信しますが、リモートデスクトップウィンドウには送信しません。
つまり、リモートデスクトップを使用してサーバーに接続し、そのサーバーでメモ帳を開きます。キーボードのキーを手動でパンチすると、メモ帳のエディターウィンドウに表示されます。ただし、keybd_eventの偽のキーボード入力によって「a」がメモ帳に表示されることはありません。
ローカルマシンで実行されているアプリケーションから、リモートデスクトップ接続内で実行されているアプリケーションに偽のキーボード入力をプログラムで送信するにはどうすればよいですか?
Nitpickersコーナー
この特定のケースでは、アイドルタイムアウトを打ち負かそうとしているので、これを実行したいと思います。しかし、私は同じようにしようとしている可能性があります
- UI自動化テストを実行する
- UIストレステスト
- UI障害検出テスト
- UIユニットテスト
- UIデータ入力テスト
- UIペイントテスト
- またはUIの復元力テスト。
言い換えれば、それを望んでいる私の理由は重要ではありません
注:タイムアウトは、リモートデスクトップが非アクティブであることが原因である場合と、そうでない場合があります。わかりませんが、質問には影響しません。