驳:《利用键盘钩子捕获Windows键盘动作》

     
      在网上搜到这篇文章,按足了操作步骤,没有完全达到预期的效果,而且没有释放钩子。

      经过多次试验,对于在VC里创建“标准静态链接MFC DLL”或者“标准动态链接MFCDLL”,都只能够在调用DLL的程序的窗口发送消息,钩子才能钩到消息。否则,在调用程序以外的窗口发送消息,钩子就钩不到消息。要钩子能够钩到所有窗口发送的消息,那就得创建“扩展MFC DLL”。

      以上仅为本人的测试结果,至于对不对、为什么,我也还搞不懂,欢迎大家讨论,给我个答案。

      补充说明:我创建“扩展MFC DLL”,导出的是类接口;非“扩展MFC DLL”导出的函数接

时间: 2024-10-26 08:22:58

驳:《利用键盘钩子捕获Windows键盘动作》的相关文章

win32汇编-WIN32汇编键盘钩子截获全部键盘

问题描述 WIN32汇编键盘钩子截获全部键盘 普通的键盘钩子只能截获普通的键盘操作,但是不能截获到shift等系统键,求问怎么样截获所有的键盘操作 解决方案 http://www.cnblogs.com/zudn/archive/2010/12/15/1906374.html 解决方案二: win32程序测试键盘钩子win32程序测试键盘钩子

利用底层键盘钩子拦载任意按键(回调版)

前段时间我曾经写过一篇<利用底层键盘钩子屏蔽任意按键>,并放到了我的blog上.这 篇文章的题目中把"屏蔽"改成了"拦截",显然要比以前的版本强 一些了.对于以前写的那个DLL,有一个不够理想的地方,就是仅仅能实现屏蔽.如果想在屏 蔽之前加入一些"小动作",就只能修改DLL,在LowLevelKeyboardProc函数中添 加代码,实现新的功能.但这样显然不够灵活,这样的DLL也不具备一般性了.所以我自然而 然地想到了回调,Wind

利用键盘钩子开发按键发音程序

本文配套源码 一.前言 一日,看见我妈正在用电脑练习打字,频频低头看键盘,我想:要是键盘能发音的话,不就可以方便她养成"盲打"的好习惯吗?光想不做可不行,开始行动(您可千万别急着去 拿工具箱啊^_^)... 按键能发音,其关键就是让程序能够知道当前键盘上是哪个键被按下,并播 放相应的声音,自己的程序当然不在话下,那么其它程序当前按下哪个键如何得知呢?利用键盘钩子便可 以很好地解决. 下载本文的全部源代码 大小:552K 二.挂钩(HOOK)的基本原理 WINDOWS调用挂接的回调函数时

windows api学习笔记-键盘钩子

DLL项目的头文件 #ifdef KEYHOOKLIB_EXPORT //此宏将在CPP文件中定义 #define KEYHOOKLIB_API __declspec(dllexport) #else #define KEYHOOKLIB_API __declspec(dllimport) #endif #define HM_KEY WM_USER+101 BOOL KEYHOOKLIB_API WINAPI SetKeyHook(BOOL bInstall,DWORD dwThreadId =

键盘钩子lParam问题

问题描述 if(lParam&0x80000000)判断让键盘只处理一次事件,网上资料好像可行,为什么我提示错误运算符"&"无法应用于"System.IntPtr"和"uint"类型的操作数. 解决方案 解决方案二:if((lParam.ToInt64()&0x80000000)==0x80000000)解决方案三://钩子事件内部调用,调用_clientMethod方法转发到客户端应用.privatestaticintO

WINDOWS键盘事件的挂钩监控原理及其应用技术

WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接各种反调函数(HOOK)的功能.这种挂钩函数(HOOK)类似扩充中断驱动程序,挂钩上可以挂接多个反调函数构成一个挂接函数链.系统产生的各种消息首先被送到各种挂接函数,挂接函数根据各自的功能对消息进行监视.修改和控制等,然后交还控制权或将消息传递给下一个挂接函数以致最终达到窗口函数.WINDOW系统的这种反调函数挂接方法虽然会略加影响到系统的运行效率,但在很多场合下是非常有用的,通过合理有效地利用键盘事件的挂钩函数监控机

vc++6 0-全局键盘钩子函数的回调函数有时无效

问题描述 全局键盘钩子函数的回调函数有时无效 DLL代码: myHooke.c #include "myHooke.h" #include <windows.h> #include <winuser.h> #include <stdlib.h> #include <stdio.h> int ndown = 0; HHOOK hhkHook = NULL; //定义钩子句柄 HINSTANCE hInstance = NULL; //程序实

如何用键盘钩子屏蔽系统功能键

问题描述 如题.想把系统的所有功能键屏蔽,哪位大虾有代码可以提供参考的,先谢谢了.PS:网上找了很多类似如下的代码,都是用键盘钩子,但没有一个可以真正实现屏蔽的.不知道是不是我哪里弄错了,汗!通过API屏蔽[DllImport("user32.dll",SetLastError=true)]publicstaticexternboolRegisterHotKey(IntPtrhWnd,intid,intfsModifiers,//alt=1,none=0,win=8;Keysvirtu

java web 程序 可不可以在客户端运行键盘钩子 要 怎么做?

问题描述 java web 程序 可不可以在客户端运行键盘钩子 要 怎么做? 50C java web 程序 可不可以在客户端运行键盘钩子 要 怎么做? 解决方案 可以试一下ActiveX控件+DLL的方式 解决方案二: web程序本身进程来加载键盘hook DLL 解决方案三: 亲们 帮帮忙 最后一哆嗦了 解决方案四: 这个是个现成的程序你参考一下:http://download.csdn.net/detail/qwe852012/1720478 解决方案五: 在服务端是可以 我要的是在客户端