win7和XP下全局键盘钩子的方法并不相同

win7:

hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyBoardHookProcedure, IntPtr.Zero,
0);

XP:

hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyBoardHookProcedure,
Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);

可以先执行win7的语句,如果返回的hHook是0,就再执行一次XP的方法。

win7和XP下全局键盘钩子的方法并不相同,布布扣,bubuko.com

时间: 2024-10-26 07:57:28

win7和XP下全局键盘钩子的方法并不相同的相关文章

使用raw input 代替全局键盘钩子

//关于raw input 请查看msdn https://msdn.microsoft.com/en-us/library/windows/desktop/ms645536%28v=vs.85%29.aspx //效率 比 键盘钩子高太多 ,但是BCB 中无法识别 RAWINPUTDEVICE 结构 和RAW相关的函数 // rawinput4.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "rawinput4.h&qu

全局键盘钩子(WH_KEYBOARD)

为了显示效果,在钩子的DLL中我们会获取挂钩函数的窗体句柄,这里的主程序窗体名为"TestMain",通过FindWindow查找. KeyBoardHook.dll代码 [delphi] view plaincopy library KeyBoardHook; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND y

使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法

也就是在CreateFile的时候打开文件名指定: "\\.\Device"就可以了. 因为代码比较短, 所以我不做注释, 相信大家看代码就能明白意思了. 另外这里读写的都是软盘A盘第0扇区, 如果想读写其他的扇区, 那么可以使用API SetFilePointer. 读扇区的方法(下面的代码演示从A盘的第0扇区读出数据, 写入到文件BOOT.BIN中): #include <windows.h> #include <assert.h> #include <

C#实现键盘钩子

前言: 因为项目中需要使用到快捷键,所以上网找资料了解关于快捷键的实现技术,于是有了键盘钩子的使用学习.在网上了解到,键盘钩子其实只是很多种钩子中的其中一种.所谓钩子:请看下面关于钩子的描述(来自百度百科): Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的.而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能. 钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理

Win7 VS2010下开发的CS软件,安装到XP下无法运行或者桌面快捷方式无法显示图标的问题解决方法

1.最近做了一个项目是在win7 下使用VS2010开发的WinForm软件,在本机运行正常,之后打包安装之后,发现桌面快捷方式无法显示,找了很久,网上资料查了又查,最有在一位朋友的博文提醒下终于搞定了,我发现我的ico图标是150*170px的,一位网友说在XP或者win7下窗口图标或者快捷方式图标大小不能超过128*128px,受此启发,我将图片修改为100*100px,然后使用,结果却是可以显示了,总结,xp或win7下窗口图标或者快捷方式图标大小最好不能超过128*128px,否则导致图

键盘钩子 用来截屏

.点击开始按钮 .a窗体隐藏,b窗体显示 scsysrq截图 .需要在桌面创建bc文件夹. 总的思路就是用钩子获取键盘信息 然后进行截图的线程控制 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Drawing;using System.Linq;using System.Runtime

C#全局键盘监听(Hook)的使用

一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下快捷键使用此功能... 这个时候在程序中添加键盘监听肯定不能满足需求了,当用户焦点不在App上时(如最小化,或者用户在处理其它事物等等)键盘监听就失效了 二.怎样才能实现全局键盘监听? 这里需要用到Windows API,源码如下:(可以作为一个工具类[KeyboardHook.cs]收藏起来) u

WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例

键盘钩子是一种可以监控键盘操作的指令. 看到这句话是不是觉得其实键盘钩子可以做很多事情. 场景 当你的程序需要一个全局的快捷键时,可以考虑使用键盘钩子,如大家常用qq的截图快捷键,那么在WPF里怎么去实现呢? 当然不是直接在Window窗体里面去注册MouseLeftButtonDown.MouseLeftButtonUp,这样只有在程序是焦点的情况下才能触发, 我们这里要做的更为强大,即在非焦点下去获取到键盘的事件(要偷偷记录女朋友键盘记录的滚粗,当然我是在开玩笑,程序猿哪里有女朋友,我们只有

Window XP下安装centOS7双系统总结

首先,按照网络教程,使用硬盘安装模式(失败): 一.使用分盘工具(easeUS Partion Master)分出一块未使用的空间,为安装centOS和保存镜像文件作准备. 二.将分出来的一部分空格,使用分盘工具(其实分盘不过就是修改mbr ,主引导记录),创建分区,创建了格式为ext2的分区,设置其为逻辑分区,保证让Linux认识,同时由于windows系统不认识ext2格式,所以需要使用到Ext2Fsd软件为该分区分配盘符.另一部分暂时保持未分配状态,留着安装centOS7. 三.在官网下载