windows下的屏幕划词

首先,我们需要确定何时模拟clt+c组合键,所有我们需要知道当前鼠标有没有选中一段文字。大概过程:使用SetWindowsHookEx来设置一个全局鼠标钩子,利用WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE和WM_LBUTTONDBLCLK 4个消息来确定鼠标是否选中一段文字。发生下面2种情况我们都认为选中了一段文字,第一种情况:WM_LBUTTONDOWN和WM_LBUTTONUP之间的时间间隔超过了我们设置的时间,并且在此时间间隔中,有WM_MOUSEMOVE消息,那么我们就认为用户选中了一段文字;第二种情况:触发了WM_LBUTTONDBLCLK(鼠标双击消息)。  PS:在非客户区按键抬起也会收到WM_LBUTTONUP消息,按照MSDN的解释是不应该触发该消息的,但是在实测过程中,在非客户区会触发WM_LBUTTONUP消息,但是在非客户区,是不会触发WM_LBUTTONDOWN,这一点不知道为什么。

确定了如何模拟clt+c组合键之后,就开始取词了。上面判断是否选中的过程都是在dll中完成的,当dll中判断需要取词后,通知外部程序进行模拟按键取词,在模拟按键之前,最好sleep一点时间,主要是上面的第二种情况,即需要取词的对象需要处理完WM_LBUTTONDBLCLK消息之后才算选中状态,如果外部程序立即模拟按键可能会取到空值。模拟按键结束后最好也sleep一点时间,原因和上面也差不多。

windows下的屏幕划词

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年2月2日
下一篇 2017年2月2日

相关推荐