デスクトップで座標色取得

解決


のーとん  2003-07-24 23:14:59  No: 4232

はじめまして。

よくある「デスクトップで座標位置の色を取得するソフト」
と同じような動きをさせたいのですが
なにぶん初心者なものでさっぱりわかりません。
流れとしては、デスクトップにランダムに色が変わるフォームがあるとして

10分に一度特定の座標位置の色を取得
色が変わっていればイベント発生

という感じです。
良ければ教えていただけないでしょうか?
よろしくお願いします。


にしの  2003-07-24 23:54:14  No: 4233

デスクトップのデバイスコンテキストは、GetDC(0)で取得できます。
このデバイスコンテキストから、BitBltでTBitmap.Canvas.Handleにコピーしてやれば、通常のCanvasから色を読み取るのと同じ方法で取得できます。

googleで探せばたくさん情報はありますよ。


Halbow  2003-07-24 23:56:02  No: 4234

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


のーとん  2003-07-25 18:41:28  No: 4235

うまくいきました!
にしのさん、Halbowさん、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加