C#用windows Api Hooks 控制鼠标键盘在一个窗体内
其实功能很简单,我也做了一半,现在问题是语言是C#获取一个窗体的句柄,让后把鼠标控制在此窗体里面(也就是不可以离开此窗体),键盘也一样,最好可以控制ctrl+alt+de...
其实功能很简单,我也做了一半,现在问题是语言是C#
获取一个窗体的句柄,让后把鼠标控制在此窗体里面(也就是不可以离开此窗体),键盘也一样,最好可以控制ctrl+alt+delete的组合键,我做了下,有难度、、、
源码也行,理论也行。谢谢各位 展开
获取一个窗体的句柄,让后把鼠标控制在此窗体里面(也就是不可以离开此窗体),键盘也一样,最好可以控制ctrl+alt+delete的组合键,我做了下,有难度、、、
源码也行,理论也行。谢谢各位 展开
1个回答
2013-04-25
展开全部
直接通过C#调用window api来实现HOOK,说下思路吧,实现自己琢磨下吧,如你所说其实很简单,关键逻辑想通了就OK
1. 获取窗体句柄,可以通过findwindow函数很enumwindow两个函数结合使用获取,如果知道了类名或者窗体的名称也可以直接调用窗体操作相关API来获取窗体句柄
2.HOOK部分,这里我建议你用全局钩子,通过 setwindowhookex函数来安装钩子,钩子的类型就是键盘钩子和鼠标钩子了,要是你觉得普通的键盘鼠标钩子不能满足,那么就像QQ那样用低级的键盘钩子和鼠标钩子,这个在msdn文档都有描述或者百度下就知道了,然后 处理的话直接在钩子的回调函数,这个我想你也知道,这个处理可能需要点技巧了
3.要控制ctrl-alt-delete那么就用低级键盘钩子的,以前用C#写过,不过是用C++写库,C#调用的,所以要控制这个我推荐用低级键盘钩子,不过据我所知好像C#直接用钩子还是有些限制很不足的,比如低级的钩子就不好整了
==
以上就是一些简单的思路了
PS:有个C#做的HOOK类库很强大,你可以百度下,名字我忘记了
1. 获取窗体句柄,可以通过findwindow函数很enumwindow两个函数结合使用获取,如果知道了类名或者窗体的名称也可以直接调用窗体操作相关API来获取窗体句柄
2.HOOK部分,这里我建议你用全局钩子,通过 setwindowhookex函数来安装钩子,钩子的类型就是键盘钩子和鼠标钩子了,要是你觉得普通的键盘鼠标钩子不能满足,那么就像QQ那样用低级的键盘钩子和鼠标钩子,这个在msdn文档都有描述或者百度下就知道了,然后 处理的话直接在钩子的回调函数,这个我想你也知道,这个处理可能需要点技巧了
3.要控制ctrl-alt-delete那么就用低级键盘钩子的,以前用C#写过,不过是用C++写库,C#调用的,所以要控制这个我推荐用低级键盘钩子,不过据我所知好像C#直接用钩子还是有些限制很不足的,比如低级的钩子就不好整了
==
以上就是一些简单的思路了
PS:有个C#做的HOOK类库很强大,你可以百度下,名字我忘记了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询