はじめまして。
よくある「デスクトップで座標位置の色を取得するソフト」
と同じような動きをさせたいのですが
なにぶん初心者なものでさっぱりわかりません。
流れとしては、デスクトップにランダムに色が変わるフォームがあるとして
10分に一度特定の座標位置の色を取得
色が変わっていればイベント発生
という感じです。
良ければ教えていただけないでしょうか?
よろしくお願いします。
デスクトップのデバイスコンテキストは、GetDC(0)で取得できます。
このデバイスコンテキストから、BitBltでTBitmap.Canvas.Handleにコピーしてやれば、通常のCanvasから色を読み取るのと同じ方法で取得できます。
googleで探せばたくさん情報はありますよ。
Halbow です。
スクリーン座標 X,Y のピクセルの色は、ディスプレイDCから GetPixel で
取得できます。こんな感じです。
procedure TForm1.Button1Click(Sender: TObject);
var
DispDC: HDC;
X,Y:integer;
Clr:COLORREF;
begin
X := 100;
Y := 100;
DispDC := CreateDC('DISPLAY',nil,nil,nil);
Clr := GetPixel(DispDC,X,Y);
DeleteDC(DispDC);
Panel1.Color := TColor(Clr);
end;
わたしのHPではディスプレイDCからのスクリーンキャプチャのプログラム
を説明しています。(動画のキャプチャはできません)
http://halbow.cool.ne.jp/Notes/N009.html
うまくいきました!
にしのさん、Halbowさん、ありがとうございました。
ツイート | ![]() |