以上窗口为无边框窗体:在窗口属性中 去除窗口边框:首先定义两个变量:在构造函数中进行初始化:因为要按下鼠标左键才能进行拖动,所以增加鼠标左键消息:小技巧: 捕获鼠标 放置鼠标跑出当前窗口:增加移动鼠标消息:鼠标按下去的小时函数如下:增加鼠标离开弹起的消息:鼠标移动的消息函数实现如下:鼠标当前位置减去...
分类:
编程语言 时间:
2016-03-20 19:32:15
阅读次数:
263
① 鼠标消息:WM_MOUSEMOVE 鼠标移动位置WM_LBUTTONDOWN 鼠标左键按下WM_LBUTTONUP 鼠标左键弹起WM_LBUTTONDBLCLK 鼠标左键双击WM_RBUTTONDOWN 鼠标右键按下WM_RBUT...
分类:
其他好文 时间:
2016-01-02 22:20:13
阅读次数:
243
前几天,查了一个batch的问题,问题大致是这样,父窗口消息一个鼠标消息,弹出一个模态框,CPU负荷就飚升到100%(双核就是50%),非常怪异,用windbg,分析哪个线程占用CPU,定位到鼠标响应函数,也就是弹出模态框的函数,windbg提供的信息有限,只能自己分析,经过各种尝试,发现与模态框里...
分类:
编程语言 时间:
2015-12-29 21:02:51
阅读次数:
236
其中涉及到的一些API,网上均能查到详细的解释,这里不再熬述。源码下载因为是全局钩子,所以要用dll注入。用到的鼠标消息结构如下:[delphi]view plaincopyPMouseHookStruct=^TMouseHookStruct;{$EXTERNALSYMtagMOUSEHOOKSTR...
做一个发送表情的对话框,类似微信和QQ一样的,点击表情按钮,弹出表情框,鼠标点击表情框外时,这个表情框被kill。说白了 就是在这个窗口上获得窗口外面的鼠标消息。Google百度了一番,很多人说道使用钩子,才能获得窗口外面的click事件,这也未免太小题大做了吧。还好发现了一个简简单单的函数:
SetCapture(*this);
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口...
分类:
其他好文 时间:
2015-11-24 07:38:45
阅读次数:
133
GetLastInputInfo是检测系统输入的,应用到某个程序中不合适!此问题有二种解法来监控输入消息:1.用线程级HOOK,钩上MOUSEHOOK与KEYBOARDHOOK2.在Application.OnMessage中做处理显然,用第2种方法比较方便!众所周知,键盘与鼠标消息都是队列消息,需...
分类:
移动开发 时间:
2015-08-21 19:20:51
阅读次数:
226
7.5捕获鼠标(1)捕获鼠标:SetCapture(hwnd)——Windows将所有消息都发给hwnd窗口,鼠标消息总是以客户区消息的形式出现。即使鼠标位于非客户区也一样。lParam为客户区坐标。(2)释放捕获:ReleaseCapture()(3)一般WM_LBUTTONDOWN时开始捕获,W...
分类:
其他好文 时间:
2015-07-19 18:01:43
阅读次数:
140
7.1鼠标的基础知识功能GetSysMetrics的参数返回值判断是否安装鼠标SM_MOUSEPRESENTWINNT以上:TRUE己安装。0未安装Windows98:总是TRUE。鼠标按钮个数SM_CMOUSEBUTTONSWINNT以上:0为未安装鼠标Windows98:有安装鼠标返回按钮个数,...
分类:
其他好文 时间:
2015-07-19 17:55:24
阅读次数:
138
1、鼠标坐标问题BOOL GetWindowRect( HWND hWnd, LPRECT lpRect ); RECT x;//定义一个二维数组x ::GetWindowRect(hwnd,&x); POINT P;//x,y RECT型 X 的指针 GetCursorPos(&...
Hook(钩子)就是对Windows系统的一些消息或是API函数进行拦截和监控的处理平台,让可以根据程序员的设置获取其感兴趣的信息。
这里主要是介绍一下Hook拦截鼠标消息和键盘消息。
下面是CALLBACK Proc 回调函数 和 CallNextHookEx函数
LRESULT CALLBACK HookProc
(
int nCode, //指定是否需要处理该消息
WPAR...
分类:
其他好文 时间:
2015-05-06 18:03:39
阅读次数:
158