矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 2290|回复: 29

键盘检测工具软件是什么原理?

[复制链接]
     
发表于 2024-10-10 00:27:44 | 显示全部楼层 |阅读模式
我在两三台二手笔记本上都曾用过keyboardtest键盘检测工具软件,总有个别功能键(非字母或数字键)按下时软件界面模拟键盘键位没有对应的变色显示(但是有显示按键代码说明键是好的),这是什么原因?
keyboardtest.gif
     
发表于 2024-10-10 01:30:19 | 显示全部楼层
功能键没有发送消息给系统
一般这类软件用的是这几个API写的
  1. Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
  2. Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
  3. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long)as integer
  4. Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long)as integer
复制代码

回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 09:05:32 | 显示全部楼层
因为那些键不是标准按键,它返回的按键码,你用的程序不知道该对应到哪个
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-10 14:31:15 来自手机 | 显示全部楼层
JuncoJet 发表于 2024-10-10 01:30
功能键没有发送消息给系统
一般这类软件用的是这几个API写的

大概是这样
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-10 14:35:39 来自手机 | 显示全部楼层
bigluo 发表于 2024-10-10 09:05
因为那些键不是标准按键,它返回的按键码,你用的程序不知道该对应到哪个

有道理,为什么不同笔记本的键盘不统一按键码标准呢?Windows为什么都能识别并正常操作?
回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 14:44:26 | 显示全部楼层
ustone 发表于 2024-10-10 14:35
有道理,为什么不同笔记本的键盘不统一按键码标准呢?Windows为什么都能识别并正常操作?

第一个问题,人家设计师有自己的想法,产品要有特色,例如笔记本的键盘,很多都增加了音量、亮度调节功能,这些功能在台式机用不着;
第二个问题,厂家自己做了驱动,将按键转发给windows了,不信你找个特色键盘的笔记本,重装一个普通版的系统,不要装厂家带的驱动试试。
回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 15:20:42 | 显示全部楼层
俺想了想,现代的键盘上按键大体上分为四类:

第一类是标准按键,就是早期的 104/107 键 ,一般来说键盘检测软件上画的就是这类键盘布局,你每按下一个按键她都会有相应的显示。

第二类按键是后来扩充的按键,早期多数出现在笔记本电脑上,比如多媒体按键,这类按键和第一类差不多,只不过检测软件上没有画出对应的键位而已,但是可以显示它们的代码。

第三类按键是一些特殊功能键,它们对应的是系统功能键组合,比如搜索键对应 WIN+S、表情键对应 WIN+>、截屏键对应 WIN-SHIFT-S,它们在键盘检测软件上也会以组合键的形式显示出来。

第四类是一部分键盘自身或系统专用的按键,它们不会以按键消息的形式发送给操作系统,比如屏幕亮度、键盘背光、游戏模式等。
回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 15:22:53 | 显示全部楼层
ustone 发表于 2024-10-10 14:35
有道理,为什么不同笔记本的键盘不统一按键码标准呢?Windows为什么都能识别并正常操作?

有些扩充按键是有标准的,比如音量键;有些按键时不需要系统干预的、或者是由厂商的应用自行处理的,当然也就不需要统一编码。
回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 16:03:02 | 显示全部楼层
本帖最后由 washu 于 2024-10-10 16:05 编辑
ustone 发表于 2024-10-10 14:35
有道理,为什么不同笔记本的键盘不统一按键码标准呢?Windows为什么都能识别并正常操作?


来来来,这是我的键盘,不是笔记本哦,就是台式机的
wjw_20611.jpg


然后最上面这些键
wjw_20613.jpg


以前 Win7 时代基本全部支持,现在 Bug11 就支持静音、播放/停止、音量加减这几个了


btw. 好在微软以前提供过一个驱动
未标题-1mkb1.png


比如如今已经不支持的哪个 Messenger 键,按下后会告诉你可以重新分配一个功能
未标题-1mkb2.png
回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 16:08:56 | 显示全部楼层
bigluo 发表于 2024-10-10 14:44
第一个问题,人家设计师有自己的想法,产品要有特色,例如笔记本的键盘,很多都增加了音量、亮度调节功能 ...

看上楼,我的台式机键盘真的有音量调节
回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 16:23:15 | 显示全部楼层
washu 发表于 2024-10-10 16:03
来来来,这是我的键盘,不是笔记本哦,就是台式机的  

很多功能都是需要键盘生产商的应用程序来实现的,比如俺的罗技 Option+ 可以对每一个应用程序定制按键方案。
Screenshot 2024-10-10 192247.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-10 16:25:53 | 显示全部楼层
bigluo 发表于 2024-10-10 14:44
第一个问题,人家设计师有自己的想法,产品要有特色,例如笔记本的键盘,很多都增加了音量、亮度调节功能 ...

感觉我的笔记本都没有专门的键盘驱动程序
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-10 16:26:55 | 显示全部楼层
scoopydoo 发表于 2024-10-10 15:20
俺想了想,现代的键盘上按键大体上分为四类:

第一类是标准按键,就是早期的 104/107 键 ,一般来说键盘 ...

没错      
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-10 16:27:54 | 显示全部楼层
scoopydoo 发表于 2024-10-10 15:22
有些扩充按键是有标准的,比如音量键;有些按键时不需要系统干预的、或者是由厂商的应用自行处理的,当然 ...

有些特殊功能键可能BIOS直接处理了
回复 支持 反对

使用道具 举报

     
发表于 2024-10-10 16:28:44 | 显示全部楼层
scoopydoo 发表于 2024-10-10 15:20
...第二类按键是后来扩充的按键,早期多数出现在笔记本电脑上,比如多媒体按键


嘿嘿大湿看这个
wjw_20613.jpg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 18:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表