标题: 紧急求救: 关于键盘重定义
[打印本页]
作者: wllzwqz
时间: 2005-8-27 09:24
标题: 紧急求救: 关于键盘重定义
本人的一台本本,退格键(Backspace)键帽有点问题,致使该键无法正常使用。我知道通过ANSI.SYS可以进行键盘重定义,我想用Insert键来代替退格键功能,希望各位高手告诉config.sys里面语句怎么写。不胜感激!
曾经用过一个软件,可以转定义,但因为是win98的系统,结果就总是提示explorer出错,因此只能考虑用ANSI.SYS来做了。
作者: willsort
时间: 2005-8-27 14:40
Re wllzwqz:
可以通过以下链接来熟悉ANSI的使用,但是需要提醒的是,ANSI.SYS的键盘重重义只在加载了ANSI.SYS的DOS或者Windows命令行下有效,在Windows的窗口界面中是不起作用的。
转贴:ANSI.SYS程序的使用
http://www.cn-dos.net/forum/viewthread.php?tid=1272
如何在多种环境下准备使用ANSI.SYS
http://www.cn-dos.net/forum/viewthread.php?tid=16292#pid96462
作者: JonePeng
时间: 2005-8-27 22:29
看了Willsort转贴的Ansi.sys的应用,我受益匪浅!才知道原来Ansi.sys可以像楼主说的那样通过自定义把某一键代替为另一键。我研究了一下,发现Ansi.sys并不是对所有键都有效,尤其是Insert、Delete、Home、End、PgUp和pgDn键是不能替换为其它键的。因此我建议楼主用F12代替退格键。首先在config.sys里添加一行装载Ansi.sys(该文件位于Win98的command目录下):
devicehigh=c:\windows\command\ansi.sys
然后在Autoexec.bat添加:
prompt $e[0;134;8p$p$g
测试成功,但只对纯DOS以及Win98的MSDOS方式下有效,该方法对Windows的应用程序是不能替代退格键的,只能用第三方工具了。
作者: willsort
时间: 2005-9-2 15:12
Re JonePeng:
Insert 等键是可以替换的,只是它们的ANSI编码比较特殊。详细参看以下截取自PDOS6.22帮助文档中的ANSI.SYS。
----------------------------------------------------------------------------
ANSI.SYS
定义一套函数,用于改变图形的显示,控制光标的移动,以及对键盘进行重新设
置。ANSI.SYS设备驱动程序支持ANSI ESC序列的终端仿真,来对系统屏幕和键盘进行
控制。
ANSI ESC序列是一个ASCII码字符序列;序列开头的两个字符是ESC转义字符
(ASCII码为1Bh)和左方括号(5Bh),紧跟其后的是一个控制键盘和显示功能的字母
数字代码序列。 ANSI转义序列严格区分字母大小写,如“A”和“a”就分别有完全不
同的意义。
这个设备驱动程序必须通过CONFIG.SYS文件中的<DEVICE>或<DEVICEHIGH>命令
加载。
注意:本主题中,语法和ANSI ESC转义序列的黑体字必须严格照原样输入。
语法
DEVICE=[drive:][path]ANSI.SYS [/X] [/K] [/R]
参数
[drive:][path]
指定ANS1.SYS文件所在处的完整路径名。
开关项
/X
重新映射独立于101键键盘的扩展键。
/K
ANSI.SYS象处理84键键盘一样来处理101键键盘。 这与命令SWITCHES=/K等效。
如果经常要用SWITCHES=/K命令,则有必要在ANSI.SYS中用/K开关项。
/R
在读屏幕程序(使计算机更方便残疾人操作)中用ANSI.SYS时,/R通过调整行滚动
来提高其可读性。
ANSI转义序列中要用到以下参数:
Pn
数字参数。指定一个十进制数字。
Ps
可选参数。指定一个十进制数,用以选择某一函数。若要指定多个函数,可用
(;)分隔不同的函数。
PL
行参数。指定一个十进制数,表示显示器或另一设备上显示的某一行。
Pc
列参数。指定一个十进制数,表示显示器或另一设备上显示的某一列。
用于光标移动、图形和键盘设置的ANSI ESC序列
下列ANSI转义序列中,缩写ESC代表ASCII转义字符27(1Bh),它出现在每个
转义序列的开头。
ESC[PL;PcH
光标置位:移动光标到所指定的位置(坐标)。如果没有指定位置,则光标移
至初始位置屏幕的左上角(0行,0列)。该转义序列与下面这个光标定位转义
序列的工作方式相同。
ESC[PL;Pcf
光标置位:与上面的光标定位转义序列等价。
ESC[PnA
光标上移:向上按指定的行数移动光标,所在列数不变。
如果光标已在顶行,ANSI.SYS忽略该序列。
ESC[PnB
光标下移:按指定的行数向下移动光标数行,且保持所在列数不变。
如果光标已在底行,ANSI.SYS忽略此序列。
ESC[PnC
光标前移:按指定的列数向前移动光标数列,且保持所在行数不变。如果光标
已在最右边的列上,ANSI.SYS忽略此序列。
ESC[PnD
光标后移:按指定的列数使光标后退数列,而不改变其原所在行。如果光标已在
最左列,ANSI.SYS忽略此序列。
ESC[s
保存光标位置:保存当前光标位置。可利用“恢复光标位置”序列将光标移至此
光标位置处。
ESC[u
恢复光标位置:返回由“保存光标位置”转义序列所存放的光标位置坐标。
ESC[2J
擦除显示:清屏并将光标移至起始位置(0行,0列)。
ESC[K
行擦除:清除从当前光标位置到其所在行行末的所有字符(包括光标位置处的字
符)。
ESC[Ps;...;Psm
设置图形方式:下列指定的值来调用图形函数。这些指定的函数将一直起作用,
直到遇到下一个同类的转义序列。图形方式改变屏幕显示的颜色和字符属性(如
黑体和下划线)。
文本属性
0 关闭所有属性
1 黑体有效
4 下划线有效(仅限单色显示器)
5 闪烁有效
7 反相显示有效
8 隐蔽
前景颜色
30 黑色
31 红色
32 绿色
33 黄色
34 蓝色
35 洋红色
36 青色
37 白色
背景颜色
40 黑色
41 红色
42 绿色
43 黄色
44 蓝色
45 洋红色
46 青色
47 白色
参数30到47与ISO 6429标准一致。
ESC[=psh
模式设置:改变屏宽或类型,使之成为由下列值之一所指定的模式:
0 40 x 148 x 25 单色(文本)
1 40 x 148 x 25 彩色(文本)
2 80 x 148 x 25 单色(文本)
3 80 x 148 x 25 彩色(文本)
4 320 x 148 x 200 4色(图形)
5 320 x 148 x 200 单色(图形)
6 640 x 148 x 200 单色(图形)
7 折行有效
13 320 x 148 x 200 彩色(图形)
14 640 x 148 x 200 彩色(16色图形)
15 640 x 148 x 350 单色(2色彩图形)
16 640 x 148 x 350 彩色(16色图形)
17 640 x 148 x 480 单色(2色彩图形)
18 640 x 148 x 480 彩色(16色图形)
19 320 x 148 x 200 彩色(256色图形)
ESC[=Psl
模式重设置:用模式设置所用的同样值进行模式重置(复位),方式7(禁止折
行)除外。此转义序列的最后一个字符是小写字母l。
ESC[code;string;...p
设置键盘字串:用一指定的串重定义键盘的键。此转义序列的参数定义如下:
◆ Code是下表中列出的一个或多个值。这些值代表键盘的键或键组合。在命令中
用到这些值时,除了转义序列所要求的分号外,还要求输入表中所示的分号。
小括号括出的代码在一些键盘中没有提供。ANS1.SYS对这些键盘,不进行括号
中的代码的解释,除非在ANS1.SYS的DEVICE命令中指定了/X开关项。
◆ String串可以是一单个字符的ASCII码,也可以是用双引号引起的一个字串。
例如,65和“A”都可用来表示大写字母A。
注意:下表中的某些值并非对所有计算机都有效,注意查对你的计算机手册,看哪些
值是不同的。
键 代码 SHIFT+代码 CTRL+代码 ALT+代码
---------------------------------------------------------------------------
F1 0;59 0;84 0;94 0;104
F2 0;60 0;85 0;95 0;105
F3 0;61 0;86 0;96 0;106
F4 0;62 0;87 0;97 0;107
F5 0;63 0;88 0;98 0;108
F6 0;64 0;89 0;99 0;109
F7 0;65 0;90 0;100 0;110
F8 0;66 0;91 0;101 0;111
F9 0;67 0;92 0;102 0;112
F10 0;68 0;93 0;103 0;113
F11 0;133 0;135 0;137 0;139
F12 0;134 0;136 0;138 0;140
HOME (数字小键盘) 0;71 55 0;119 ─
UP ARROW (数字小键盘) 0;72 56 (0;141) ─
PAGE UP (数字小键盘) 0;73 57 0;132 ─
LEFT ARROW (数字小键盘) 0;75 52 0;115 ─
RIGHT ARROW (数字小键盘) 0;77 54 0;116 ─
END (数字小键盘) 0;79 49 0;117 ─
DOWN ARROW (数字小键盘) 0;80 50 (0;145) ─
PAGE DOWN (数字小键盘) 0;81 51 0;118 ─
INSERT (数字小键盘) 0;82 48 (0;146) ─
DELETE (数字小键盘) 0;83 46 (0;147) ─
HOME (224;71) (224;71) (224;119) (224;151)
↑ (224;72) (224;72) (224;141) (224;152)
PAGE UP (224;73) (224;73) (224;132) (224;153)
→ (224;75) (224;75) (224;115) (224;155)
← (224;77) (224;77) (224;116) (224;157)
END (224;79) (224;79) (224;117) (224;159)
↓ (224;80) (224;80) (224;145) (224;154)
PAGE DOWN (224;81) (224;81) (224;118) (224;161)
INSERT (224;82) (224;82) (224;146) (224;162)
DELETE (224;83) (224;83) (224;147) (224;163)
PRINT SCREEN ─ ─ 0;114 ─
PAUSE/BREAK ─ ─ 0;0 ─
BACKSPACE 8 8 127 (0)
ENTER 13 ─ 10 (0
TAB 9 0;15 (0;148) (0;165)
NULL 0;3 ─ ─ ─
A 97 65 1 0;30
B 98 66 2 0;48
C 99 66 3 0;46
D 100 68 4 0;32
E 101 69 5 0;18
F 102 70 6 0;33
G 103 71 7 0;34
H 104 72 8 0;35
I 105 73 9 0;23
J 106 74 10 0;36
K 107 75 11 0;37
L 108 76 12 0;38
M 109 77 13 0;50
N 110 78 14 0;49
O 111 79 15 0;24
P 112 80 16 0;25
Q 113 81 17 0;16
R 114 82 18 0;19
S 115 83 19 0;31
T 116 84 20 0;20
U 117 85 21 0;22
V 118 86 22 0;47
W 119 87 23 0;17
X 120 88 24 0;45
Y 121 89 25 0;21
Z 122 90 26 0;44
1 49 33 ─ 0;120
2 50 64 0 0;121
3 51 35 ─ 0;122
4 52 36 ─ 0;123
5 53 37 ─ 0;124
6 54 94 30 0;125
7 55 38 ─ 0;126
8 56 42 ─ 0;126
9 57 40 ─ 0;127
0 48 41 ─ 0;129
- 45 95 31 0;130
= 61 43 ─ 0;131
[ 91 123 27 0;26
] 93 125 29 0;27
92 124 28 0;43
; 59 58 ─ 0;39
' 39 34 ─ 0;40
, 44 60 ─ 0;51
. 46 62 ─ 0;52
/ 47 63 ─ 0;53
` 96 126 ─ (0;41)
ENTER (小键盘) 13 ─ 10 (0;166)
/ (小键盘) 47 47 (0;142) (0;74)
* (小键盘) 42 (0;144) (0;78) ─
- (小键盘) 45 45 (0;149) (0;164)
+ (小键盘) 43 43 (0;150) (0;55)
5 (小键盘) (0;76) 53 (0;143) ─
----------------------------------------------------------------------------
ANSI.SYS─注解
重新映射的扩展键
带101个键的键盘,可利用/X开关对某些扩展键重新进行映射。例如,101键
键盘上有两个HOME键:一个在数字小键盘上,一个在光标控制键块中。这两个HOME键
在MS-DOS中是一样的,除非您指定了/X开关。
忽略扩展键
如果您的程序不能正确解释利用改进的键盘所进行的输入,可利用ANSI.SYS的
/K开关项。这样,改进的键盘可当作普通键盘使用。
同时使用/X和/K开关
不能在ANSI.SYS中同时指定/X开关和/K开关。
----------------------------------------------------------------------------
ANSI.SYS─例子
输入以下转义序列,利用文字串来使反斜杠和问号键互换。
ESC["\";"?"pESC["?";"\"p
下面的转义序列,利用反斜杠和问号键各自的ASCII值来使其互换。
ESC[92;63pESC[63;92p
要恢复反斜杠和问号键的原始定义,输入以下转义序列:
ESC[92;92pESC[63;63p
要指定MS-DOS对某一目录列表显示,作为对F2键的响应,可输入下面的prompt命
令行:
prompt $e[0;60;"dir";13p
要指定屏幕背景色为黑色,前景色为高增强亮色,可输入下列prompt命令:
prompt $e[1;32;40m$p$g
[
Last edited by willsort on 2005-9-2 at 15:14 ]