主要实现代码

代码:

[DllImport("user32.dll", CharSet = CharSet.Auto,

CallingConvention = CallingConvention.StdCall, SetLastError = true)]

private static extern int SetWindowsHookEx(

int idHook,

HookProc lpfn,

IntPtr hMod,

int dwThreadId);

[DllImport("user32.dll", CharSet = CharSet.Auto,

CallingConvention = CallingConvention.StdCall, SetLastError = true)]

private static extern int UnhookWindowsHookEx(int idHook);

[DllImport("user32.dll", CharSet = CharSet.Auto,

CallingConvention = CallingConvention.StdCall)]

private static extern int CallNextHookEx(

int idHook,

int nCode,

int wParam,

IntPtr lParam);

[DllImport("user32")]

private static extern int ToAscii(

int uVirtKey,

int uScanCode,

byte[] lpbKeyState,

byte[] lpwTransKey,

int fuState);

[DllImport("user32")]

private static extern int GetKeyboardState(byte[] pbKeyState);

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]

private static extern short GetKeyState(int vKey);

使用SetWindowsHookEx函数(API函数),指定一个Hook类型、自己的Hook过程是全局还是局部Hook,同时给出Hook过程的进入点,就可以轻松的安装自己的Hook。

代码:

// 创建鼠标实例.

MouseHookProcedure = new HookProc(MouseHookProc);

//安装 鼠标hook

hMouseHook = SetWindowsHookEx(

WH_MOUSE_LL,

MouseHookProcedure,

Marshal.GetHINSTANCE(

Assembly.GetExecutingAssembly().GetModules()[0]),

0);

// 创建键盘实例.

KeyboardHookProcedure = new HookProc(KeyboardHookProc);

//安装 键盘hook

hKeyboardHook = SetWindowsHookEx(

WH_KEYBOARD_LL,

KeyboardHookProcedure,

Marshal.GetHINSTANCE(

Assembly.GetExecutingAssembly().GetModules()[0]),

0);

卸载Hook UnhookWindowsHookEx()函数(API函数)

android 全局hook_全局HOOK API (C#) 的实现相关推荐

  1. android 全局hook_【Hook】实现无清单启动Activity

    引子 Hook技术在android开发领域算是一项黑科技,那么一个新的概念进入视线,我们最关心的3个问题就是,它是什么,有什么用,怎么用 本系列将由浅入深 手把手讲解这三大问题. 本文是第三篇, 高级 ...

  2. xposed android debug,Android 手机开启全局调试xposed插件

    手机开启全局调试ro.debuggable = 1 一般方法就是重刷boot.img ,大部分手机都比较困难. 还有就是命令临时修改,重启手机失效的. 还有magisk 刷的 今天给介绍一个xpose ...

  3. Android开发之全局异常捕获

    Android开发之全局异常捕获 [转载请注明出处]本文出自付小华的博客 http://blog.csdn.net/klxh2009 今晨谷歌正式发布Android 8.0,新版本的Android O ...

  4. Android 手机开启全局调试xposed插件

    手机开启全局调试ro.debuggable = 1 一般方法就是重刷boot.img ,大部分手机都比较困难. 还有就是命令临时修改,重启手机失效的. 还有magisk 刷的 今天给介绍一个xpose ...

  5. 美服疯狂坦克辅助瞄准外挂C#版开发(二)全局鼠标键盘HOOK

    大家都知道,Windows操作系统内部通讯是基于消息机制的.为了实现我们的功能,必须要能够截和处理获游戏中鼠标键盘事件的消息,常规做法是获取游戏窗体的句柄,然后加入HOOK,这样的好处是不会影响到其它 ...

  6. python keyboard hook_键盘监控的实现Ⅰ——Keyboard Hook API函数

    在实际应用中,键盘监控是一种很常见的技术,它包括按键的记录.按键的过滤.按键的修改(映射)等.比方说,我们想统计用户的击键情况,这个就是按键的记录:我们想屏蔽某些系统键(例如Alt键.Win键),这个 ...

  7. Android美化之全局透明背景

    2019独角兽企业重金招聘Python工程师标准>>> Android美化之全局透明背景 我们上次在<Android美化综述>中向大家简单的介绍了Android美化的大致 ...

  8. android hook api

    搞了好几个星期,终于有点头绪,欢迎交流.转载请注明出处http://blog.csdn.net/lingfong_cool/article/details/8109290. android安全可以从三 ...

  9. 车载导航android音频策略,Android车载导航全局声控装置及方法

    Android车载导航全局声控装置及方法 [技术领域] [0001]本发明涉及智能Android车载系统领域,尤其涉及一种Android车载导航全局声控装置及方法. [背景技术] [0002]在行车过 ...

最新文章

  1. 数据有价——数据资产定价研究初探
  2. android studio 打开github开源代码
  3. Java设计模式(一):策略设计模式
  4. swift hidesBottomBarWhenPushed 设置界面
  5. 利用pickle保存模型
  6. 使用iOS 4越狱iPhone或iPod Touch
  7. php 运行thinkphp,thinkPHP cli命令行运行PHP代码
  8. 写给想做自动化的我和我们
  9. 拓端tecdat|R语言中的prophet预测时间序列数据模型
  10. 使用kitti数据集实现自动驾驶——发布照片、点云、IMU、GPS、显示2D和3D侦测框
  11. Java - 注解(Annotation)
  12. 文档翻译——免费版(word格式、pdf格式)
  13. unity滑动屏幕旋转物体
  14. 01-java设计模式知识点-上篇
  15. 《那些年啊,那些事——一个程序员的奋斗史》——19
  16. Premature optimization is the root of all evil.
  17. JavaScript Boolean(布尔)对象
  18. 计算机视觉及智能影像报告:未来规模超200亿美元
  19. C语言学习——渐渐发现程序世界的奇妙
  20. vue+elementui上传头像

热门文章

  1. 全国最美的美女机器人 机械制造技术“屌”到爆
  2. IDEA控制台中文乱码(JAVA
  3. 10.模型层与ORM
  4. CatBoost安装
  5. 数字IC-1.3 组合电路和时序电路
  6. 逻辑综合和SDC约束文件
  7. maven更新JRE更改JSE1.5
  8. MATLAB中的常用矩阵运算
  9. serializable和parcelable的区别
  10. geoserver发布离线瓦片卫星图TIF格式