2009-04-19 7 views
3

私はテスト自動化のためのソフトウェアに取り組んでいます。それを稼働させるには、デスクトップと開いているすべてのウィンドウで「見て」いる必要があります。どのウィンドウが開いていて、どのウィンドウがどのようなもので構成されているかを知る必要があります。だから、Spy ++がやっていることに似た何かをしなければなりません(Visual StudioのSpy ++)。 Spy ++がどのように情報を得るのか誰にでも分かりますか? 開いているウィンドウに関する情報を取得するために呼び出せるWindowsメソッドはありますか?Spy ++のようなソフトウェアはどのように情報を取得しますか?

答えて

8

EnumWindowsを使用すると、すべての最上位ウィンドウを取得できます。 lpEnumFuncの中でFindWindowExに電話して、各トップレベルウィンドウの子ウィンドウ/コントロールを取得し、必要な情報を提供する他の興味深い機能を呼び出すことができます。 GetClassNameGetClassInfoGetClientRectなどご覧くださいhere詳細

4

windows hookと呼ばれています。 Win32 API SetWindowHookExをチェックアウトしてください。

さまざまなタイプのフックがDLLに存在し、そのDLL関数は、特定のスレッドのWindowsメッセージまたは同じデスクトップ内のすべてのスレッドの種類のWindowsに対して呼び出されます。

私のrelated answer on Windows hooks hereもご覧ください。

+0

とにかく、それらのフックは "私は必要な他の大きなもの"です... –

関連する問題