点击鼠标时获取荧幕某点的坐标和颜色

点击鼠标时获取屏幕某点的坐标和颜色
程序运行时,先把本窗口最小化或隐藏,这时屏幕上显示的另外一个进程的窗口。我把鼠标移动到这个窗口的某个点上,点击鼠标左键,这时就获得这个点的坐标值和颜色值,返回并显示原窗口。
------解决思路----------------------
SetWindowsHookEx
------解决思路----------------------
根本不需要用构子。两三行代码搞定。
GetDC取得你的窗口DC,然后用GetPixel即可。
------解决思路----------------------
既然是其他进程的窗口,那一定要用钩子了,激活MouseDown,然后获取信息,Active之前的窗口。
下面是获取本进程的信息
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  dc: HDC;
  s: string;
  Color: Cardinal;
begin
  dc := GetDC(Self.Handle);
  try
    Color := GetPixel(dc, x, y);
    if Color = clr_invalid then Exit;
    s := Format('X at:%d, Y at:%d, Color:%d', [x, y, Color]);
    Application.MessageBox(PChar(s), 'Mouse Down Info', MB_ICONINFORMATION);
  finally
    ReleaseDC(Self.Handle, dc);
  end;
end;
------解决思路----------------------
引用:
不装钩子何以得知鼠标点击事件发生了呢?

想得复杂了。
首先拷屏,然后在一个全屏幕的顶端窗口上用画布画出来,想怎样处理鼠标消息都是可以了。。。