1

SendKeys.SendWait("keys")最小化されたアプリケーションまたは非表示のアプリケーションにいくつかのキーストロークを送信するために使用したいと思います。

実験的には、送信先のアプリケーションにフォーカスがあり、表示されている場合にのみ機能するように見えます。アプリケーションが表示されていないときにアプリケーションにフォーカスを与えようとしましたが、役に立ちませんでした。私は何かを逃したことを願っています。これを行う方法はありますか?

バックグラウンド:

サイレント インストールをサポートしていないサード パーティのインストール パッケージを、できるだけ静かで自動化するように強制しようとしています。新しいもの。

インストーラーは、Java AWT を起動する InstallAnywhere パッケージです。このため、Spy++ はボタンの ID を表示しません。私が得る唯一のものは、メイン ウィンドウのハンドルです。これにより、SendKeys.SendWait("keys")必要なオートメーションを取得するには、を使用してキーを送信する必要があると思われます。

(「Alt-N」の場合は「次へ」ボタンを押す)を使用してインストールを実行できますSendKeys.SendWait("%n")が、ウィンドウを非表示にしたいです。特定のステージがいつ完了したか分からないため、定期的にポーリングし、適切なキーを押しています。これは大きなハックですが、より良いオプションが見つかりませんでした。問題は、これらのキーを押すたびに最小化してから復元したくないということです。これよりも良い方法があるはずですよね?

Windows 7 で C# .NET 4.0 を使用します。

4

1 に答える 1

1

残念ながら、キーボード入力はアクティブ ウィンドウに送られるため、キーボード入力をシミュレートするものはすべて同じように動作します。

アクセシビリティ フックが追加されている場合は、UI 自動化フレームワークを使用できます。Raymond のブログからの簡単なサンプルを次に示します。

于 2013-10-02T15:29:15.457 に答える