画面上の特定の場所の色を取得するには。

解決


じょん。  2003-12-26 08:11:11  No: 110962  IP: [192.*.*.*]

画面上のある場所(たとえば、右から100ピクセル上から50ピクセルの場所)の
色が変わったときに、イベントを起こしたいのですが、
どのようにすれば、画面上の色を取得できるのでしょうか?

編集 削除
じょん。  2003-12-26 08:18:50  No: 110963  IP: [192.*.*.*]

えっと、webbrowserコントロール内のある特定の場所でもよいです。

編集 削除
特攻隊長まるるう  2004-01-02 07:20:17  No: 110964  IP: [192.*.*.*]

画面をキャプチャして画像ファイルの色情報(Picuter1.Point(X, Y))
くらいしか思いつかないです。ボクの知識では。

編集 削除
くりちゃん  URL  2004-01-02 18:49:52  No: 110965  IP: [192.*.*.*]

API関数の GetPixel を利用してみてはいかがでしょうか。

  この関数のパラメータ hdc にデスクトップウインドウのデバイスコンテキスト
ハンドルを指定すれば画面上の任意の座標の色を取得できると思います。

編集 削除
じょん。  2004-01-03 13:19:59  No: 110966  IP: [192.*.*.*]

教えて頂いたGetPixelでいろいろ検索、試行錯誤して
うまく動くようになりました。
ありがとうございました。

編集 削除
あうー  2004-05-30 10:26:12  No: 110967  IP: [192.*.*.*]

はじめまして、便乗質問です。
私も、上記と同じ事をやりたいのですが、(print screenキーを押さずに
画面をキャプチャして、特定の座標にある色を判別して、アクションを起こす)
GetPixel の使い方も判らなければ、
デスクトップウインドウのデバイスコンテキスト
ハンドルを指定なんてさっぱりです。
どなたか気の長い方教えてください。

編集 削除
Say  2004-05-31 09:40:18  No: 110968  IP: [192.*.*.*]

わからないときの基本はヘルプとWeb検索です。

>GetPixel の使い方も判らなければ、
API関数の使い方を知りたいときは、
関数名にDeclareをつけて、たとえば
「GetPixel Declare」
のようなキーワードでWeb検索すれば、たいていみつかります。

>print screenキーを押さずに画面をキャプチャして
keybd_event(API関数)を使ってキャプチャーできます。
まずヘルプ(プラットフォームSDK)で調べてみてください。

>デスクトップウインドウのデバイスコンテキストハンドルを指定
Web検索のキーワードは
「Declare デスクトップ デバイスコンテキスト」
ってところですか。

編集 削除
あうー  2004-05-31 10:32:35  No: 110969  IP: [192.*.*.*]

sayさん有難うございます。
Declareを付けて検索するのは、やってませんでした。
意味が(Declare)いまいちよく分かりませんが、その方法で頑張ってみます。

編集 削除
Say  2004-05-31 11:52:37  No: 110970  IP: [192.*.*.*]

>意味が(Declare)いまいちよく分かりませんが、
Declareは主としてVBからAPI関数を利用したいとき、宣言文に使用します。
Declareはクセの強いキーワードで、
「VBのAPI関数使用宣言」以外で見かけることはほとんどありませんから、
Web検索で「VBでAPIに関する」絞込みに非常に有効です。

編集 削除
あうー  2004-05-31 19:59:17  No: 110971  IP: [192.*.*.*]

seyさんDeclareの説明ありがとうございます。
Declareって、宣言に使われてたんですねぇ、知らなかった。
たいがいコピペしてたもので・・・
今度から、もちっと宣言文とかを観察することにします。

編集 削除