#region 自定义事件

///

/// Hooks the start.

///

public void Hook_Start()

{

// 安装键盘钩子

if (hHook == 0)

{

KeyBoardHookProcedure = new HookProc(KeyBoardHookProc);

hHook = SetWindowsHookEx(WH_KEYBOARD_LL,

KeyBoardHookProcedure,

GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);

//如果设置钩子失败.

if (hHook == 0)

{

Hook_Clear();

}

}

}

//取消钩子事件

///

/// Hooks the clear.

///

/// UnhookWindowsHookEx failed.

public void Hook_Clear()

{

bool retKeyboard = true;

if (hHook != 0)

{

retKeyboard = UnhookWindowsHookEx(hHook);

hHook = 0;

}

//如果去掉钩子失败.

if (!retKeyboard) throw new Exception("UnhookWindowsHookEx failed.");

}

//这里可以添加自己想要的信息处理

///

/// Keys the board hook proc.

///

/// The n code.

/// The w parameter.

/// The l parameter.

/// System.Int32.

public static int KeyBoardHookProc(int nCode, int wParam, IntPtr lParam)

{

return 1;

}

#endregion 自定义事件

#region 暂时屏幕按键

//委托

public delegate int HookProc(int nCode, int wParam, IntPtr lParam);

///

/// The h hook

///

private static int hHook = 0;

///

/// The wh keyboard ll

///

public const int WH_KEYBOARD_LL = 13;

//LowLevel键盘截获,如果是WH_KEYBOARD=2,并不能对系统键盘截取,Acrobat Reader会在你截取之前获得键盘。

///

/// The key board hook procedure

///

private HookProc KeyBoardHookProcedure;

///

/// Class KeyBoardHookStruct.

///

/// 键盘Hook结构函数

[StructLayout(LayoutKind.Sequential)]

public class KeyBoardHookStruct

{

///

/// The vk code

///

public int vkCode;

///

/// The scan code

///

public int scanCode;

///

/// The flags

///

public int flags;

///

/// The time

///

public int time;

///

/// The dw extra information

///

public int dwExtraInfo;

}

#region DllImport

//设置钩子

///

/// Sets the windows hook ex.

///

/// The identifier hook.

/// The LPFN.

/// The h instance.

/// The thread identifier.

/// System.Int32.

[DllImport("user32.dll")]

public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId);

///

/// Unhooks the windows hook ex.

///

/// The identifier hook.

/// true if XXXX, false otherwise.

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

//抽掉钩子

public static extern bool UnhookWindowsHookEx(int idHook);

///

/// Calls the next hook ex.

///

/// The identifier hook.

/// The n code.

/// The w parameter.

/// The l parameter.

/// System.Int32.

[DllImport("user32.dll")]

//调用下一个钩子

public static extern int CallNextHookEx(int idHook, int nCode, int wParam, IntPtr lParam);

///

/// Gets the current thread identifier.

///

/// System.Int32.

[DllImport("kernel32.dll")]

public static extern int GetCurrentThreadId();

///

/// Gets the module handle.

///

/// The name.

/// IntPtr.

[DllImport("kernel32.dll")]

public static extern IntPtr GetModuleHandle(string name);

#endregion DllImport

键盘 计算机代码,键盘钩子示例相关推荐

  1. 键盘计算机编程,键盘接口与编程

    键盘接口与编程 键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令.地址和数据.一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它 ...

  2. 计算机最基本的键盘是什么键盘,计算机最基本的什么是键盘

    计算机最基本的"输入设备"是键盘.键盘是最常用也是最主要的输入设备,通过键盘可以将英文字母.数字.标点符号等输入到计算机中,从而向计算机发出命令.输入数据等. 键盘 (计算机输入设 ...

  3. 计算机键盘是编码键盘还是非编码键盘,矩阵按键原理图_矩阵按键扫描实例

    键盘分编码键盘和非编码键盘.键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘. 在一般嵌入式应用中,用的最多的是非编码键盘 ...

  4. 个人计算机使用的标准键盘,计算机键盘的基本用法!

    一.键盘简介 键盘是计算机使用者向计算机输入数据或命令的最基本的设备.常用的键盘上有101个键或103个键,分别排列在四个主要部分:打字键区.功能键区.编辑键区.小键盘区. 现将键盘的分区以及一些常用 ...

  5. element-ui 搜索框组件:监听input键盘事件 - 代码篇

    踩坑:vue + element-ui 框架监听input键盘事件 - 含demo演示 代码示下: html部分: <el-inputplaceholder="职位 | 地区 | 工作 ...

  6. 编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入。 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48

    编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入. 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48 #include ...

  7. 二年级计算机认识键盘教案,认识计算机键盘教案.doc

    认识计算机键盘教案 认识计算机键盘一.教学目标:1.认识并理解计算机键盘的十种功能键2.能对十种功能键进行基本操作二.教学重点大/小写字母转换键.双符号键:三.教学难点大/小写字母转换键.前删键与后删 ...

  8. 计算机怎样打开鼠标点的键盘,如何打开计算机虚拟键盘?五种打开计算机虚拟键盘的方法简介...

    随着社会的发展和时代的进步,人们的生活越来越丰富多彩.越来越多的电子产品的出现给人们的生活增添了无限的兴奋.如今,计算机已成为人们生活中必不可少的电子产品之一.我们总能在生活中看到计算机.当然,键盘经 ...

  9. android 调出键盘表情_android高仿微信表情输入与键盘输入代码(详细实现分析)

    表情与键盘的切换输入大部分IM都会需要到,之前自己实现了一个,还是存在些缺陷,比如说键盘与表情切换时出现跳闪问题,这个困扰了我些时间,不过所幸在Github(其代码整体结构很不错)并且在论坛上找些解决 ...

  10. 个人总结了下自己在XP系统下键盘组合代码,顺便分享下,其实很实用,可是你用到了麽?

    这个就是winkey  winkey+f :  不用再去移动鼠标点"开始→搜索→文件和文件夹"了,在任何状态下,只要一按winkey+f就会弹出搜索窗口.    winkey+r ...

最新文章

  1. 在Ubuntu上编译opencv 2.4.13源码支持android平台操作步骤
  2. 灵活性是原则性基础上的灵活
  3. AVAudioPlayer播放音频
  4. char[]数组与char *指针的区别
  5. 从一点儿不会开始——Unity3D游戏开发学习(一)
  6. performance 查看页面性能
  7. python文件输入符_python文件IO与file操作
  8. mysql 动态索引_MySQL的索引
  9. 你该知道的深度强化学习相关知识
  10. RestTemplate HttpMessageConverter报错的解决方案no suitable HttpMessageConverter
  11. slice()如何在jQuery中工作
  12. 质量管理体系五大核心工具
  13. PHPCMS 前台模板集合
  14. 解决word中公式插入后行间距变大,和文字不统一的问题
  15. 简述Android模拟机和真机的区别,详解android模拟器emulator
  16. 一台linux同时安装两个mysql库,使用不同端口
  17. wireshark过滤器使用
  18. 非线性扰动观测器(NDOB)
  19. Hadoop运行踩坑: Attempting to operate on hdfs namenode as root
  20. 当米友遇到同行(二)

热门文章

  1. 函数计算机显示RAD,计算器rad是什么意思
  2. win7修复计算机无法修复工具栏,WIN7多系统启动引导修复工具BCDautofix v1.3
  3. 【第七课】Smart 3D集群教程
  4. 企业架构TOGAF认证培训
  5. wps表格宏被禁用如何解禁_wps宏被禁用如何打开?
  6. noip2017棋盘(超级详细)
  7. stm32呼吸灯程序_STM32寄存器操作点亮LED灯
  8. VMP2.0版本带壳调试教程
  9. html生成图片有色差,引起打印的产品和电脑图片有色差的原因有哪些?
  10. 区块链零知识证明:Zcash 基础知识普及帖,Zcash 技术分析