ソースコードを持っていないアプリケーションのコンボボックスがいつ変更されたかを検出する必要があります。アイデアは、イベントをこのコントロールにフックし、イベントが発生したときに、コントロールの選択された値を取得することです。私はグーグルで検索しましたが、ヘッダーテキストが変更されたときにウィンドウをフックする方法(ウィンドウをフックする方法)を見つけました。コントロール(FindWindowEx)のハンドルを取得することはできますが、イベントをコントロールにフックする方法がわかりません。何か助けてくれる人がいれば、どうぞよろしくお願いします。
質問する
1809 次
1 に答える
1
SendMessageAPIを調べることができます。DDEはIPCの古い方法でしたが、それでも.netで機能します。
安価で簡単な方法として、GUID+'|'を使用してフォームを作成するだけです。+Textプロパティとしてのテキストボックスのハンドル。アプリが実行されたら、フォームを読み込むだけで、表示しないでください(タスクトレイからも非表示にします)。
他のアプリは、ヘッダーの所定のGUIDを使用して最初のアプリフォームでFindWindowExを実行し、フォームのテキストボックスへのハンドルを取得することもできます(パイプ文字などでGUIDから分離します)。
ここで、SendMessage(WM_SETTEXT)をテキストボックスhwndに送信します(ユーザーがコンボボックスで選択した値を指定します)。text_changedイベントにイベントハンドラーを配置すると、最初のアプリで起動します。
于 2012-08-14T22:27:20.667 に答える