社区
硬件/系统
帖子详情
Win2k关于键盘钩子的问题
emildy
2003-08-19 11:24:33
安装WH_KEYBOARD_LL钩子后,就可以截获键盘消息,
但是,我想在截获键值后改变它,然后继续传递,
比如说,按下"a",那被我截获后将变成"b",再继续传递,
好象在回调涵数中lParam参数指向的KBDLLHOOKSTRUCT结构直接修改没有用,
应该怎么做呢?
...全文
30
12
打赏
收藏
Win2k关于键盘钩子的问题
安装WH_KEYBOARD_LL钩子后,就可以截获键盘消息, 但是,我想在截获键值后改变它,然后继续传递, 比如说,按下"a",那被我截获后将变成"b",再继续传递, 好象在回调涵数中lParam参数指向的KBDLLHOOKSTRUCT结构直接修改没有用, 应该怎么做呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
emildy
2003-08-19
打赏
举报
回复
to papaya_stone(^_^)shentong(^_^):
还是两个键互换的问题,虽然不会永远循环下去,但每次都会有2,3十次循环就自动停止了,这个怎么解决呢?
emildy
2003-08-19
打赏
举报
回复
to papaya_stone(^_^)shentong(^_^):
你的办法可行,谢谢,
但是系统的快捷键先于我的钩子,
我把Insert和Delete换过来后,Ctrl+Atl+Insert可以使用,Ctrl+Atl+Del也可以使用...
emildy
2003-08-19
打赏
举报
回复
to papaya_stone(^_^)shentong(^_^):
我现在就在试这个办法,但有个问题,如果我F2,F3键相互交换后,按了F2,就模拟F3,然后又模拟F2,会这样循环下去...
papaya_stone
2003-08-19
打赏
举报
回复
不知道这样成不成,模拟F3,然后把F2屏蔽
extern "C" _declspec(dllexport) LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if(nCode == HC_ACTION)
{
if((wParam == VK_F2 ) && ((0x80000000 & lParam) == 0))//
{
::keybd_event(VK_F3,0,0,0);
::keybd_event(VK_F3,0,KEYEVENTF_KEYUP,0);
return 1;
}
}
return CallNextHookEx(glhHook,nCode,wParam,lParam);
}
papaya_stone
2003-08-19
打赏
举报
回复
不知道这样成不成,模拟F3,然后把F2屏蔽
extern "C" _declspec(dllexport) LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if(nCode == HC_ACTION)
{
if((wParam == VK_F2 ) && ((0x80000000 & lParam) == 0))//
{
::keybd_event(VK_F3,0,0,0);
::keybd_event(VK_F3,0,KEYEVENTF_KEYUP,0);
return 1;
}
}
return CallNextHookEx(glhHook,nCode,wParam,lParam);
}
emildy
2003-08-19
打赏
举报
回复
to ajn_sailing(我心飞翔):
以上的代码我Copy了,但是没有任何效果的,wParam不管怎么变,系统似乎都会恢复回来;
to mfc168(闶阆):
我做的是全局钩子呀,又不是为了某一个Project用;
总而言之,言而总之,
我想把键盘上的A键和B键换过来,F1和F2换过来,Insert和Delete换过来,
在任何情况下都有效,就好像是S键左边的就是B键一样,按Ctrl+Atl+Del变成了Ctrl+Atl+Insert;
mfc168
2003-08-19
打赏
举报
回复
还有一种方法可以试一下:
每个键盘的键值在系统中是固定的,是一个宏定义,在WINUSER.H中,你可以将相应的键值进行变换,就能实现你的功能了
ajn_sailing
2003-08-19
打赏
举报
回复
说说你是如何测试的
emildy
2003-08-19
打赏
举报
回复
to 上边的几位: 不可以的,我试过的;
wangweintk
2003-08-19
打赏
举报
回复
你的方法应该是可以的,调试一下,看看你是不是确定改过了。
mfc168
2003-08-19
打赏
举报
回复
agree
ajn_sailing
2003-08-19
打赏
举报
回复
以下的个人看法,没有调试过。
extern "C" _declspec(dllexport) LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if(nCode == HC_ACTION)
{
if((wParam == VK_F2 ) && ((0x80000000 & lParam) == 0))//
wParam = VK_F3;//这样就可以了
}
return CallNextHookEx(glhHook,nCode,wParam,lParam);
}
node-v12.16.3-x86.msi
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在
Win
dows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
云计算基础课件—架构dr.pptx
云计算基础课件—架构dr.pptx
067ssm-jsp-mysql艺诚美业管理系统.zip(可运行源码+数据库文件+文档)
L文主要是对艺诚美业管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对艺诚美业管理系统进行了一些具体测试。 本文以JSP为开发技术,实现了一个艺诚美业管理系统。艺诚美业管理系统的主要使用者分为管理员;个人中心、会员管理、员工管理、员工打卡管理、技师预约管理、发型美容师管理、技师类型管理、套餐信息管理、套餐类型管理、套餐购买管理、会员充值管理、系统管理,员工;个人中心、员工打卡管理、技师预约管理,会员;个人中心、技师预约管理、套餐购买管理、会员充值管理,前台首页;首页、发型美容师、套餐信息、我的、跳转到后台等功能。通过这些功能模块的设计,基本上实现了整个艺诚美业管理系统的过程。 具体在系统设计上,采用了B/S的结构,同时,也使用JSP技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的艺诚美业管理系统。 关键词 :艺诚美业管理系统;JSP技术;Mysql数据库;B/S结构
【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar
【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:242】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 有管理员,外卖员,餐厅,用户共四个角色。管理员功能有个人中心,外卖员管理,餐厅管理,用户管理,菜品分类管理,菜品信息管理,外卖订单管理,订单配送管理,订单评价管理,在线留言管理,系统管理等。外卖员,餐厅,用户都可以在微信小程序上面进行注册和登录操作。餐厅角色可以在微信小程序上面进行菜品的添加,修改,删除,查询操作,可以对用户的订单进行审核操作,查看订单配送状态和评价,可以查看投诉反馈和在线留言等。外卖员角色可以在微信小程序上面进行订单的抢单操作,查看订单配送和评价信息等。 用户角色可以在微信小程序上面进行菜品的查看和查询,对自己下的订单进行支付操作,查看订单配送和对订单评价,收藏菜品等操作。
oplog4j是java项目生成操作日志的工具,兼容spring(高分项目).zip
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章