2009-07-03 8 views
1

私たちは、ユーザーが効率的に使用するには複雑すぎると感じているサードパーティのWindowsアプリケーションがあります。アプリケーションは、1日に3000件の文書をスキャンするために使用しているスキャナを管理します。他のアプリケーションのモーダルダイアログポップアップを傍受する

スキャナアプリケーションは、キーボードを使用して完全に操作できます。

したがって、小さなアプリケーションにはSendKeysを使用し、スキャナアプリケーションにキーストロークを送信するためのいくつかのWin32 APIコールを使用する小さなボタンがあります。このWinFormsアプリケーションをフルスクリーンにし、Zオーダーの先頭に設定する予定です。

しかし、スキャナアプリケーションでは、モーダルダイアログ(スキャナの紙詰まりなど)にエラーメッセージが表示されることがあります。これらのエラーメッセージをWinFormsアプリケーションに表示する必要があります。

誰もがこれらのエラーメッセージをキャプチャしてユーザーに表示する方法を提案できますか?

答えて

2

これが最も効率的な方法であるかどうかはわかりませんが、それらのエラーメッセージを特定する方法があると仮定すると、開いているすべてのウィンドウを一度に移動し、エラーウィンドウ。

もう1つの可能な方向は、あなたのdllを他のアプリに注入し、渡されたメッセージを見ることです。私は、あなたがそれらのメッセージを特定することができると言うことができず、私は現時点ではさらなる研究をすることができませんが、可能でなければならないと確信しています。そのようなメッセージがポップされたときにJust Spy ++他のアプリを呼び出し、関連するメッセージを特定します。

+0

モーダルウィンドウは常に同じタイトルを持っているので、取得するためには、FindWindowを使用することができます。今私はそれを私のWinFormsアプリケーションウィンドウに関してモーダルに設定する必要があります...どのように考えていますか? –

+0

私はこれが可能だとは思っていませんが、あなたのGUIをすでに表示しているので、自分のモーダルウィンドウに表示するメッセージの内容を読んでみませんか?おそらく同じウィンドウと同じテキストフィールドを使用してエラーを表示します。エラーメッセージフィールドを特定し、テキストを取得して自分のウィンドウに表示するだけです。 – eran

+0

私は、SetParentやSetWindowLongのいくつかの組み合わせを使ってモーダルウィンドウを改変することが可能でなければならないと確信しています... –

関連する問題