0

たくさんのホットキーが定義された自家製のアプリ(マスター)があります。別の外部アプリ(コントロール)でアプリを自動化する必要があります。マスターアプリを再構築できません。実行され、既にインストールされており、混乱することはありません。

キーボードを使用する場合、マスターでホットキーを使用することは魅力のように機能します。

したがって、SendKeys.SendWaitまたはSendKeys.Sendを使用してコマンドを送信すると思います。私のコードは他のアプリ(メモ帳など)では正常に機能しますが、カスタムアプリのマスターでは機能しません。これにはいくつかの理由が考えられます-マスターは古く、.NET、C++が混在しています...いくつかの低レベルのビデオコントロール...誰が隠れているのかを知っています。

もっと高いレベルを取得する必要があります。キーストロークをキーボード自体からのものであるかのように送信できる必要があります。コンピューターが、キーを送信する物理キーボードとキーを送信するアプリを区別できるようにしたくありません。

何を使用できますか?また、どのように異なりますか?

4

1 に答える 1

0

問題は SendKeys ではありませんでした。

SendKeys.Send、SendKeys.SendWait、SendInput、keybd_event を試しました。

後で、アプリケーションをアクティブにしてからキーストロークを送信するまでの時間が短すぎることに気付きました。私は200ミリ秒待っていましたが、これを500ミリ秒に増やすだけで問題が解決しました。

ビデオプレーヤーが埋め込まれているため、アプリケーションの描画に時間がかかりました。さらに 300 ミリ秒待つことで、送信したキーストロークの準備が整いました。

于 2011-09-11T05:03:53.533 に答える