具体的には、プログラムが実行されており、プログラム内のテキスト ボックスからテキストを抽出したいと考えています。
一般に、システムで実行されている別の .exe を「内部に取り込み」、C++ を使用してその中のテキスト ボックスからデータを抽出するには、どの方法/トピックを使用する必要がありますか?
これを達成する方法へのポインタが欲しいだけです。ありがとう。
GUIアプリケーション(Windows固有)を「内部に入れる」ためのもう1つの一般的な手法は、DLLインジェクション+Windowsサブクラス化です。これはおそらく、「Windows Via C /C++」という主題に関する優れた本をプログラミングするやや高度なウィンドウと見なされます。これが本質的に何であるかについての簡単な考え:
また、上記で言及したことは、「ウィンドウのハッキング」ではないことにも注意してください。これは、Microsoftによって意図的に実装された明確に定義された動作です。実際には、MSDNで非常によく文書化されています。
これを実行したい場合は、「Windowsサブクラス化」と「フックの設定」を参照してください。
テキストを取得したい特定のウィンドウに対してEnumChildWindows
とSendMessage
を使用するだけです。WM_GETTEXT
@DeusAduro によって言及されたインジェクトとサブクラスのテクニックの説明と、GDI テキストのフックなど、同じための他のいくつかのテクニックについては、動作するオンライン ポーカー ボットの構築方法: サードパーティ アプリケーションからのテキストの抽出を参照してください。出力 API。もちろん、標準のテキスト ボックスの場合は、いつでも WM_GETTEXT を送信できます。これは、プロセスの境界を越えても機能します (実際には、プロセスの境界を越えて機能するように設計されています)。