用钩子啊
SetWindowsHookEx(WH_MOUSE,MouseHookCallBack,
GetModuleHandleFromInstance, GetCurrentThreadID);
function MouseHookCallBack(Code: integer; Msg: WPARAM;
MouseHook: LPARAM): LRESULT; stdcall;看看Msg,MouseHook参数里面的内容应该有你要的位置信息
SetWindowsHookEx(WH_MOUSE,MouseHookCallBack,
GetModuleHandleFromInstance, GetCurrentThreadID);
function MouseHookCallBack(Code: integer; Msg: WPARAM;
MouseHook: LPARAM): LRESULT; stdcall;看看Msg,MouseHook参数里面的内容应该有你要的位置信息
解决方案 »
- 求助!!删除记录问题.
- shape控件曲线图方式中如何设定X轴的数据字段类型为STRING类型?
- Hint顯示一下後會消失,能不能弄成只要鼠標在上面就不會消失??
- 即将离开现在的单位,心情不好,先散200分!
- 建一个数据库,给表起名有什么规则吗?
- 编写拨号连接程序以后,如果因线路问题出错,就无法关闭端口,有没有API可以强行关闭com口
- 高薪诚聘DELPHI软件工程师和程序员 (真功夫全球华人餐饮连锁项目)
- 多年编程来一个有趣的问题共同讨论:今有一个ole对象,它有若干个属性(方法),如何让它们动态关联到一起来?
- 有关FTP的难题.
- 请问DELPHI怎样定义?
- 我有一个有市场的项目要做,请帮我看看哦
- 请问到那里可以找到写论文所需的资料!
SetCapture(GetDesktopWindow),然后在主程序种截取WM_LBUTTONDOWN,但这样得不到鼠标在窗体外的消息!
你这样好象只能得到鼠标在本程序窗口单击时的坐标,在其它程序窗口上的单击时坐标无法得到!
var CurPos:TPoint; //全屏幕下的鼠标坐标
......
if (Msg.LParam=WM_LBUTTONDOWN) then //响应鼠标左键消息
GetCursorPos(CurPos); //获得鼠标坐标
还是行不通的,难道除了用钩子就没办法了吗???
建议还是用mouse hook解决,如需要的话,我可以把我做的一个屏幕取色的程序寄给你参考一下
Point:tpoint;
begin
getcursorpos(point)
x:=point.x;
y:=point.y;
end;x y 为鼠标单击后的坐标
非常感谢,我很想看一下您的屏幕取色的程序!
我的信箱是: [email protected]
谢谢您!