程序关联线程与hook管理
答案:1 悬赏:0 手机版
解决时间 2021-05-23 05:31
- 提问者网友:练爱
- 2021-05-22 18:34
求可自由管理程序关联线程与hook的软件 需暂停关闭挂起功能
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-05-22 18:53
一般来说会用到hook(钩子),即获取系统的按键或者鼠标动作,然后在系统响应之前执行自定义动作,或者直接截断这个消息, 这就是屏蔽系统热键的原理了。 首先要调用操作系统的dll文件,先引入命名空间 using System.Runtime.InteropServices; 调用操作系统动态链接库的方法 [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern IntPtr SetWindowsHookExW( int idHook, HookHandlerDelegate lpfn, IntPtr hmod, uint dwThreadID);第一个参数代表钩子ID(13代表键盘钩子,14代表鼠标钩子),第二个参数是一个函数指针,指向钩子需要执行的函数,第三个参数是指向进程块的指针,第四个参数默认为0就行了。 再引用一个获取进程块指针的方法 [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern IntPtr GetModuleHandle(String modulename);接下来就是构造一个钩子了(以键盘钩子为例) 定义常量: public const int WM_KEYDOWN = 0x0100; public const int WH_KEYBOARD_LL = 13; public const int WM_SYSKEYDOWN = 0x0104;定义储存按键信息的结构体: public struct KBDLLHOOKSTRUCT 定义一个函数指针: public delegate int HookHandlerDelegate( int nCode, IntPtr wparam, ref KBDLLHOOKSTRUCT lparam);声明一个指向执行函数的函数指针: private HookHandlerDelegate proc; 构造钩子: proc = new HookHandlerDelegate(HookCallback); &n
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯