键盘 计算机代码,键盘钩子示例
#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
键盘 计算机代码,键盘钩子示例相关推荐
- 键盘计算机编程,键盘接口与编程
键盘接口与编程 键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令.地址和数据.一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它 ...
- 计算机最基本的键盘是什么键盘,计算机最基本的什么是键盘
计算机最基本的"输入设备"是键盘.键盘是最常用也是最主要的输入设备,通过键盘可以将英文字母.数字.标点符号等输入到计算机中,从而向计算机发出命令.输入数据等. 键盘 (计算机输入设 ...
- 计算机键盘是编码键盘还是非编码键盘,矩阵按键原理图_矩阵按键扫描实例
键盘分编码键盘和非编码键盘.键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘. 在一般嵌入式应用中,用的最多的是非编码键盘 ...
- 个人计算机使用的标准键盘,计算机键盘的基本用法!
一.键盘简介 键盘是计算机使用者向计算机输入数据或命令的最基本的设备.常用的键盘上有101个键或103个键,分别排列在四个主要部分:打字键区.功能键区.编辑键区.小键盘区. 现将键盘的分区以及一些常用 ...
- element-ui 搜索框组件:监听input键盘事件 - 代码篇
踩坑:vue + element-ui 框架监听input键盘事件 - 含demo演示 代码示下: html部分: <el-inputplaceholder="职位 | 地区 | 工作 ...
- 编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入。 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48
编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入. 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48 #include ...
- 二年级计算机认识键盘教案,认识计算机键盘教案.doc
认识计算机键盘教案 认识计算机键盘一.教学目标:1.认识并理解计算机键盘的十种功能键2.能对十种功能键进行基本操作二.教学重点大/小写字母转换键.双符号键:三.教学难点大/小写字母转换键.前删键与后删 ...
- 计算机怎样打开鼠标点的键盘,如何打开计算机虚拟键盘?五种打开计算机虚拟键盘的方法简介...
随着社会的发展和时代的进步,人们的生活越来越丰富多彩.越来越多的电子产品的出现给人们的生活增添了无限的兴奋.如今,计算机已成为人们生活中必不可少的电子产品之一.我们总能在生活中看到计算机.当然,键盘经 ...
- android 调出键盘表情_android高仿微信表情输入与键盘输入代码(详细实现分析)
表情与键盘的切换输入大部分IM都会需要到,之前自己实现了一个,还是存在些缺陷,比如说键盘与表情切换时出现跳闪问题,这个困扰了我些时间,不过所幸在Github(其代码整体结构很不错)并且在论坛上找些解决 ...
- 个人总结了下自己在XP系统下键盘组合代码,顺便分享下,其实很实用,可是你用到了麽?
这个就是winkey winkey+f : 不用再去移动鼠标点"开始→搜索→文件和文件夹"了,在任何状态下,只要一按winkey+f就会弹出搜索窗口. winkey+r ...
最新文章
- 在Ubuntu上编译opencv 2.4.13源码支持android平台操作步骤
- 灵活性是原则性基础上的灵活
- AVAudioPlayer播放音频
- char[]数组与char *指针的区别
- 从一点儿不会开始——Unity3D游戏开发学习(一)
- performance 查看页面性能
- python文件输入符_python文件IO与file操作
- mysql 动态索引_MySQL的索引
- 你该知道的深度强化学习相关知识
- RestTemplate HttpMessageConverter报错的解决方案no suitable HttpMessageConverter
- slice()如何在jQuery中工作
- 质量管理体系五大核心工具
- PHPCMS 前台模板集合
- 解决word中公式插入后行间距变大,和文字不统一的问题
- 简述Android模拟机和真机的区别,详解android模拟器emulator
- 一台linux同时安装两个mysql库,使用不同端口
- wireshark过滤器使用
- 非线性扰动观测器(NDOB)
- Hadoop运行踩坑: Attempting to operate on hdfs namenode as root
- 当米友遇到同行(二)
热门文章
- 函数计算机显示RAD,计算器rad是什么意思
- win7修复计算机无法修复工具栏,WIN7多系统启动引导修复工具BCDautofix v1.3
- 【第七课】Smart 3D集群教程
- 企业架构TOGAF认证培训
- wps表格宏被禁用如何解禁_wps宏被禁用如何打开?
- noip2017棋盘(超级详细)
- stm32呼吸灯程序_STM32寄存器操作点亮LED灯
- VMP2.0版本带壳调试教程
- html生成图片有色差,引起打印的产品和电脑图片有色差的原因有哪些?
- 区块链零知识证明:Zcash 基础知识普及帖,Zcash 技术分析