2012-01-07 4 views
1

をロードした場合見つける方法(私もこのプロセス内の任意のコントロールを持っていない、それは第三者です)。これらのコマンドを取得するには、EAのOriginのプロセスがメイン画面(ログイン後に完全にロードされている)になければなりません。プロセスは完全に私が開始したプロセスにキーを送信する必要が私の現在のプロジェクトでは

今、私は、この点に達したとき、私は検出することができたのか分かりません。私は入力アイドルを待ってみましたが、入力アイドルは私がキーを送ることができるポイントの前に長時間達成されています。

私はプログラムがこの状態に達したときを検出するために使用できる他のいくつかの方法がありますか?私はおそらく、アプリケーションがそれ自体に信号を送るときに私が(もしあれば)検出できると思っていましたが、信号がまったくないか、それを聞くために信号を送るかどうかはわかりません。

ご協力いただきありがとうございます。メインウィンドウでは、可能性の異なるタイトルを持っている場合、プロセスのメインウィンドウが表示されるまで

+2

すでにご存じのような理由から、このタイプのUIオートメーションは非常に繊細で、エラーが発生する可能性が非常に高いです。 'SendKeys'を含む脆弱なソリューションを一緒にハッキングするのではなく、あなたは別のアプローチを調査することを強くお勧めします。 –

+0

それは 'SendKeys'ではありません。私は問題を抱えています。それは、プロセスへの通信コマンドをどのように処理するのかという側面だけが考えられました(私はおそらくpinvokeを使うつもりです)。私はちょうどプロセスがある状態を効果的に知る方法を見つけようとしています。私はこれが壊れやすい解決策であり、もし何かが一緒にハッキングしたとしても同意する。 – Frohman

答えて

1

enumerate windows繰り返して待ちます。

はところで - 私は、送信キー(時々キーが通過取得していない)といくつかの悪い経験を持っていた、と私は(再び - 列挙の窓)プロセスのUIを読んでキーを送信組み合わせることことがわかっ最も適しています。

1

、そのようなことは入力を受け入れる準備ができたときに現れる特定のラベルテキスト、などのアプリケーションでの視覚的なインジケータは、ありますか?もしそうなら、windows accessibility API(P/Invoke経由)を使用してこれを監視し、それをトリガーとして使用することができます。 APIを使用して、実際の入力コントロールがフォーカスを取得した時刻を監視することもできます。 SendKeysの代わりにAPIを使用して、より信頼性の高い対話を得ることもできます。