首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-12-31 
点击鼠标时获取屏幕某点的坐标和颜色程序运行时,先把本窗口最小化或隐藏,这时屏幕上显示的另外一个进程的

点击鼠标时获取屏幕某点的坐标和颜色
程序运行时,先把本窗口最小化或隐藏,这时屏幕上显示的另外一个进程的窗口。我把鼠标移动到这个窗口的某个点上,点击鼠标左键,这时就获得这个点的坐标值和颜色值,返回并显示原窗口。
[解决办法]
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;
[解决办法]

引用:
不装钩子何以得知鼠标点击事件发生了呢?

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

热点排行