捕获鼠标点击(100分)

  • 主题发起人 主题发起人 小狗熊
  • 开始时间 开始时间

小狗熊

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现捕获鼠标在任意位置的点击情况<br>主要是左键的点击<br><br>请看清,是捕获其他程序上的鼠标点击,不是当前程序,当前程序窗口上点击的好办<br><br>这里是记录其他程序的鼠标点击,比如网页或者其他<br><br>请高手写几句代码呵呵
 
你要实现什么功能<br>请看清,是捕获其他程序上的鼠标点击???<br>你要记录或得到什么信息???
 
你用鼠标钩子吧。
 
SDK里面有个结构类型<br>tmousehookstrcut=packed record<br> pt:tpoint; &nbsp;鼠标光标的屏幕坐标<br> hwnd:hwnd; &nbsp;接受消息的窗口 &nbsp; 这里你或许可以指定其他窗口吧.<br> &nbsp;whittestcod:unit; &nbsp;HIT DE的值<br> &nbsp;dwextrainfo:dword; &nbsp;消息自定义信息.<br>end;<br>参阅wh_cat钩子函数有对此数据结构更详细的解释.<br>var <br> themessage:tmsg;<br>mouseclicked:boolean;<br>while not mouseclicked do <br>begin<br> while peekmesssage(themessage,handle,0,0,pm_remove) do;<br>waitmessage();<br>peekmessage(themessage,hande,0,0,pm_remove);设置HANDLE指向其他窗体或对象<br>if themessage.message=wm_lbuttondown then<br>begin <br>mouseclicked:=true;<br>showmessage(' a message was received');<br>end;<br>end;<br>end;
 
很简单的啊。<br>做一个鼠标Hook,然后传递一个共享内存,记录下当前程序的窗口位置,<br>在hook的dll里面截获点击事件,然后判断鼠标位置就可以了的。<br>如果是的话,向主程序发送消息。
 
peekmessage(themessage,hande,0,0,pm_remove);设置HANDLE指向其他窗体或对象<br><br>这个是什么概念,HANDLE是需要接受消息的窗体还是捕获的窗体
 
在DLL中用钩子,好象API是SetWindowHook
 
没有具体源码吗?我只是需要捕获鼠标点击动作,就这么简单。。。
 
后退
顶部