画面上のある場所(たとえば、右から100ピクセル上から50ピクセルの場所)の
色が変わったときに、イベントを起こしたいのですが、
どのようにすれば、画面上の色を取得できるのでしょうか?
えっと、webbrowserコントロール内のある特定の場所でもよいです。
画面をキャプチャして画像ファイルの色情報(Picuter1.Point(X, Y))
くらいしか思いつかないです。ボクの知識では。
API関数の GetPixel を利用してみてはいかがでしょうか。
この関数のパラメータ hdc にデスクトップウインドウのデバイスコンテキスト
ハンドルを指定すれば画面上の任意の座標の色を取得できると思います。
教えて頂いたGetPixelでいろいろ検索、試行錯誤して
うまく動くようになりました。
ありがとうございました。
はじめまして、便乗質問です。
私も、上記と同じ事をやりたいのですが、(print screenキーを押さずに
画面をキャプチャして、特定の座標にある色を判別して、アクションを起こす)
GetPixel の使い方も判らなければ、
デスクトップウインドウのデバイスコンテキスト
ハンドルを指定なんてさっぱりです。
どなたか気の長い方教えてください。
わからないときの基本はヘルプとWeb検索です。
>GetPixel の使い方も判らなければ、
API関数の使い方を知りたいときは、
関数名にDeclareをつけて、たとえば
「GetPixel Declare」
のようなキーワードでWeb検索すれば、たいていみつかります。
>print screenキーを押さずに画面をキャプチャして
keybd_event(API関数)を使ってキャプチャーできます。
まずヘルプ(プラットフォームSDK)で調べてみてください。
>デスクトップウインドウのデバイスコンテキストハンドルを指定
Web検索のキーワードは
「Declare デスクトップ デバイスコンテキスト」
ってところですか。
sayさん有難うございます。
Declareを付けて検索するのは、やってませんでした。
意味が(Declare)いまいちよく分かりませんが、その方法で頑張ってみます。
>意味が(Declare)いまいちよく分かりませんが、
Declareは主としてVBからAPI関数を利用したいとき、宣言文に使用します。
Declareはクセの強いキーワードで、
「VBのAPI関数使用宣言」以外で見かけることはほとんどありませんから、
Web検索で「VBでAPIに関する」絞込みに非常に有効です。
seyさんDeclareの説明ありがとうございます。
Declareって、宣言に使われてたんですねぇ、知らなかった。
たいがいコピペしてたもので・・・
今度から、もちっと宣言文とかを観察することにします。
ツイート | ![]() |