作者jeff218 (jeff)
看板Key_Mou_Pad
标题Re: [键盘] 有可以变更 Ctrl & Fn 这二个功能键定 …
时间Tue Nov 15 00:57:25 2005
※ 引述《johney101 (johney)》之铭言:
: 一直以为这个程式,是可以remap fn键,因为我用在其它的都行,那fn也行才是
: 就没在试了,直到刚才,真正用在我的ibm r系笔电上,才发现…
: 我错了,
: 这个程式不能用在fn键上
: 原作者也说Can I remap my Fn key on my laptop? Probably not. The Fn key translates
: scancodes before KeyTweak can see them.
: 事实证明,我错了,sorry!
为什麽不行呢?Fn键跟其他键有什麽不一样呢?
我跟各位稍微解释一下.
先看看这软体原创者对这个软体的解释.
Keytweak is a free keyboard remapper for Windows NT/2000/XP.
It makes use of Microsoft's Scancode Map registry key to remap your keyboard.
注意看其中的scancode map.... remap...
板上很多大大应该很清楚什麽是scancode,我在这里稍为班门弄斧解释一下,
键盘输入的机制基本上是你按键盘时,键盘控制器(keyboard controller以下简称KBC)收到
键盘传来的讯号,便发出硬体中断(IRQ1),此时系统中的键盘驱动程式(DOS下则为INT9)
便会透过IO port 60h 与 64h来读取你按下键的码,就是scancode,
而放开的键码叫breakcode(通常是scancode + 128)
这个scancode无法直接拿来用,而是要透过一个map转换表,把scancode根据你在install OS
时选择哪一种键盘来做不同的map... 送出系统可用之编码,
Windows下就称之为virtual key,对ctrl,alt,shift这种控制键来说,这个时候就确定了,
不过对於字元码,这个virtual key也还不是'A' 或 'a'的编码,而是还要根据
你所用的输入法再转换一次,就可以得到acsii或uuicode或big5....码.
而上述软体便是在你的键盘驱动程式把scancode读回来要map时,把你要改变的键map到
其他键上去,让系统得到不同的virtual key,你的目的就达到了
我相信讲到这里,很多人已经睡着了.请忍耐一下,快讲完了.
那Fn键究竟有什麽不一样呢? 很简单,Fn键本身没有scancode,
你按下Fn键时既没有硬体插断,也没有scancode产生...什麽都没有,
也就是说你的系统整个不知道你压下了Fn键.
"暗,我听你在讲,如果这样的话,那我按Fn键怎麽会有作用",可能有人会这样想.
对,你系统不知道,当然什麽都不会做,但是...有别的东西知道...那就是你的键盘控制器
(KBC) 你按下了Fn键时,你的KBC知道,而你按下Fn键後所需要的功能,也全都在
KBC实现.
以下实行细节,睡着者请直接按End或左键
实行细节方法很多,我只是随便举个例.
1. 调整萤幕亮度.KBC输出PWM,其duty cycle决定萤幕亮度
2. 调整音量,两根接脚到音讯晶片,一条叫volume up,一条叫volume down,够简单吧!
3. 调整风扇转速...方法同萤幕亮度.
4. 切换萤幕输出,系统进入睡眠,无线网路开关...都是直接接到主机板晶片GPIO,然後
由BIOS控制(ACPI)...
5. 有些键在按Fn键时可有不同输出,这还有什麽办不到,我是KBC,我爱送什麽scancode就送
什麽scancode...
但是还是有方法去改变Fn的map,不过通常没人会做,
就是由原厂提供介面与工具,因为一般笔记型电脑所用的KBC,都是在开机时送一组
matrix map给KBC,这是因为同一个KBC会用在不同机型,而不同机型的键盘电路也不同,
为了生产弹性,所以厂商一般会把对照表放在BIOS中,然後在BIOS开机时送入KBC...
所以...如果厂商愿意,这是有可能做到的.
还没睡着的人...我给你鼓鼓掌.感谢支持.
其实我没搞这个好久了...可能这几年早有所变迁,所述有误请多指教.
不过基本上原则应该是这样不会变啦!....哈.哈.哈....(完)
很少打这麽多....累.....(下台鞠躬)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.113.8
1F:推 denniswu:以上说的大致上没错 太强了 拍拍手 11/15 01:02
2F:推 padro:强者 (拍拍拍) 11/15 01:04
3F:推 bluesway:推! 11/15 01:15
4F:推 tingyang:这一篇要m啊~~~值得转笔电的好文 11/15 01:22
5F:推 coolcate:好强!@_@ 11/15 01:27
6F:推 blacklightli:果然是行家,一出手便知道有没有。 11/15 01:28
7F:推 jawelhsu:必推 11/15 01:35
8F:推 johney101:推! 11/15 07:51
9F:推 linpien:推强者! 11/15 20:24
10F:推 ast9869:推的人是不是都睡着了啊? 11/18 23:35
11F:推 jeff218:XD 12/03 01:44