0

特定の画面イベントを見つけて応答できる Win32 システム用の何かを開発したいと考えています。たとえば、画面 (画面の 30x30 ピクセル部分) のビットマップ範囲 (100,100) から (130,130) が、指定された 30x30 ピクセルのベースラインと一致する場合、特定のアクションを実行します。

誰でも私にこれを始めさせることができますか? おそらく、これを簡単にするフレームワークがありますか? または私が使用できるパッケージ?それとも、サードパーティのユーティリティでしょうか?

4

1 に答える 1

1

デスクトップ ウィンドウを取得し ( GetDesktopWindow)、そのデバイス コンテキストを取得し ( GetWindowDC)、互換性のあるインメモリ デバイス コンテキストCreateCompatibleDCを作成し ( )、デスクトップ DC から互換性のあるビットマップを作成し ( CreateCompatibleBitmap)、インメモリで選択することができます。 dc ( SelectObject) を実行し、デスクトップ dc からインメモリ dc( ) に関心のある領域のビットブリッティングを実行しますBitBlt。このすべての後、クリーンアップを忘れないでください。

マネージ コードでこれを行っている場合は、これらすべての API をPInvoke.netで見つけることができます。Imaging.CreateBitmapSourceFromHBitmapを使用して、ビットマップをネイティブ ビットマップからマネージ ビットマップにコピーする必要もあります。

私はこれをすべて記憶から書いています。以前は XP で動作していましたが、Vista や Win7 では試していません。

編集: Web で「.Net スクリーン キャプチャ」をすばやく検索すると、いくつかのヒットが返されます。これには、C# と VB.Net のサンプル コードが含まれています。

于 2009-03-03T06:25:57.853 に答える