中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 紧急求救: 关于键盘重定义 上一主题 | 下一主题
wllzwqz
初级用户

浮躁的菜鸟


积分 181
发帖 13
注册 2003-10-12
状态 离线
『楼 主』:  紧急求救: 关于键盘重定义

本人的一台本本,退格键(Backspace)键帽有点问题,致使该键无法正常使用。我知道通过ANSI.SYS可以进行键盘重定义,我想用Insert键来代替退格键功能,希望各位高手告诉config.sys里面语句怎么写。不胜感激!

曾经用过一个软件,可以转定义,但因为是win98的系统,结果就总是提示explorer出错,因此只能考虑用ANSI.SYS来做了。



天行健,君子以自强不息!
2005-8-27 09:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 2 楼』:  

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



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-8-27 14:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 3 楼』:  

看了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的应用程序是不能替代退格键的,只能用第三方工具了。



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-8-27 22:29
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 4 楼』:  

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 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-9-2 15:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: