中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 转贴:ANSI.SYS程序的使用 取消高亮 | 上一主题 | 下一主题
lydong
元老会员




积分 1468
发帖 407
注册 2002-10-21
来自 广州
状态 离线
『楼 主』:  转贴:ANSI.SYS程序的使用

我们有时会希望DOS能够显示出不同的显颜色或者其它功能,我们在DOS启动时载入ANSI.SYS,它可以帮我们实现这些功能,下面是它的使用方法:
------------------------------

ANSI.SYS程序的使用
ANSI.SYS是MS-DOS中一个很有用的设备驱动程序,利用它,我们可以取得意想不到的显示效果。那么,它该如何使用呢?下面就来介绍一下。
注意:在本节中,语法和 ANSI 转义序列中的大写字母必须按原样键入。

ANSI.SYS 定义了一系列函数,这些函数被用来改变显示图形、控制光标移动和键的重定义,ANSI.SYS 设备驱动程序支持转义序列的 ANSI
终端仿真,以便控制系统的屏幕和键盘。

该设备驱动程序必须由位于 CONFIG.SYS 文件中的DEVICE或DEVICEHIGH命令加载。

语法

DEVICE(HIGH)=[ 驱动器 :][ 路径 ]ANSI.SYS [/X] [/K] [/R]

参数

[ 驱动器 :][ 路径 ]
指定 ANSI.SYS 文件的位置。

选项

/X
重新映射 101 键键盘以外的扩展键。

/K
使 ANSI.SYS 文件将 101 键键盘当作 84 键键盘看待,这等价于命令 SWITCHES=/K。如果您通常使用
SWITCHES=/K命令,那么在使用ANSI.SYS 时,则需要使用选项 /K。

/R
当 ANSI.SYS 与屏幕阅读程序(该程序使残疾人更易于使用计算机)一起使用时,此选项用来调整行的滚动,以便提高可读性。

ANSI 转义序列中使用的参数:

Pn
数字参数,用来指定一个十进制数。

Ps
可选参数。指定一个十进制数,用于选择函数。您可以指定多个函数,必须用分号 ( 将参数隔开。

PL
行参数。指定一个十进制数,它代表显示器或其它设备上的一行。

Pc
列参数。指定一个十进制数,它代表屏幕或其它设备上的一列。

ANSI 转义序列中关于光标移动、图形和键盘的设置:

在下面的 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 除外,使用 7 将使换行功能失效。

注意:该转义序列中的最后一个字符是个小写 L。

ESC[code;string;...p
设置键盘字符串:将键盘键重新定义为指定的字符串。该转义序列的参数定义如下:

“code”是列于下表的一个或多个数值,这些数值代表键盘键和键的组合。当在命令中使用这些数值时,除了该序列要求的分号外,您还必须键入该表中显示的分号。括号中的代码在一些键盘上不存在,除非选项
/X 在 ANSI.SYS 的DEVICE 命令中被指定,否则,ANSI.SYS 将不为这些键盘翻译括号中的代码。

“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
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
通常,在DOS提示符下按ESC键时,屏幕会显示一个反斜杠(\)并把光标移到下一行.这时可以使用PROMPT命令.假如现在DOS提示符是$P$G,想要清屏,就可键入:
PROMPT=$E[2J $P$G 这里$E即表示按ESC键,然后再把提示符改回$P$G,不然在执行每条命令前就都要清屏了.
在用EDIT编辑批处理文件时可用下列方法输入ESC字符.首先同时按下Ctrl和P键
然后再按下作方括号,此时屏幕出现一左箭头(?说明已输入了ESC字符.之后必须放 开Ctrl再次按下方括号键开始ANSI命令.



欢迎大家观临我的个人主页:

      http://dosdiy.bluepc.com.cn/
      http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn    lydong@yeah.net
----------------------------------------------
2003-2-23 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (89677127)  编辑帖子  回复  引用回复
LanE
银牌会员




积分 1832
发帖 647
注册 2002-11-8
状态 离线
『第 2 楼』:  

又是Wengier老大的吧?
以前我找过很长时间都没有找到,找到后怎么就这么容易发现了呢??

2003-2-23 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复
lydong
元老会员




积分 1468
发帖 407
注册 2002-10-21
来自 广州
状态 离线
『第 3 楼』:  

是吧,我以前就用过ANSI.SYS,但一直没有找到详细的介绍资料,只能自己乱搞。后来看到这篇文章不错,立即把它收藏了起来



欢迎大家观临我的个人主页:

      http://dosdiy.bluepc.com.cn/
      http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn    lydong@yeah.net
----------------------------------------------
2003-2-24 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (89677127)  编辑帖子  回复  引用回复
lydong
元老会员




积分 1468
发帖 407
注册 2002-10-21
来自 广州
状态 离线
『第 4 楼』:  在DOS下的时间提示

DOS下的时间提示  

     若你想在屏幕上任何专访用明快的前面色显示日期和时间,可将下面的文件录入

并存在TIMER,BAT文件中.

@E CHO OFF
IF "%1"==""GOTO HELP
GOTO OK
:HELP
ECHO SYNTAX:TIMER A B C D
ECHO A=TEXT COLOR 30=BLACK 31=RED
ECHO 32=GREEN 33=YELLOW
ECHO 34=BLUE 35=MAGENTA
ECHO 36=CYAN 37=WHITE
ECHO B=BACKGROUND 40=BALCK 41=RED
ECHO 42=GREEN 43=YELLOW
ECHO 44=BLUE 45=MAGENTA
ECHO 46=CYAN 47=WHITE
ECHO C=R NUMBER
ECHO D=COLUMN NUMBER
GOTO EXIT
:OK
PROMPT $P$G$E[s$E[%1m$E[%2m$[E%3;%4H
$d $t $E[37m$E[40m $E[u
:EXIT


请将ANSI.SYS 装入CONFIG.SYS中,利用 A,B,C,D测试好参数后,再装 入

AUTOEXEC.BAT.在屏幕右上角显示蓝色背景白色文字时间及是戎的语句是:

CALL TIMER.BAT 37 44 1 50




欢迎大家观临我的个人主页:

      http://dosdiy.bluepc.com.cn/
      http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn    lydong@yeah.net
----------------------------------------------
2003-2-24 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (89677127)  编辑帖子  回复  引用回复
LanE
银牌会员




积分 1832
发帖 647
注册 2002-11-8
状态 离线
『第 5 楼』:  

建议楼上文章单独一帖

2003-2-27 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复
lydong
元老会员




积分 1468
发帖 407
注册 2002-10-21
来自 广州
状态 离线
『第 6 楼』:  

你说的也对,不过我是想把它做为ANSI使用方法的一个应用例子,用来说明ANSI的用法的一个例子。



欢迎大家观临我的个人主页:

      http://dosdiy.bluepc.com.cn/
      http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn    lydong@yeah.net
----------------------------------------------
2003-2-28 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (89677127)  编辑帖子  回复  引用回复
LanE
银牌会员




积分 1832
发帖 647
注册 2002-11-8
状态 离线
『第 7 楼』:  

可是改变屏幕颜色毕竟比使用ANSY.SYS听起来更诱人一些

2003-3-2 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复
LanE
银牌会员




积分 1832
发帖 647
注册 2002-11-8
状态 离线
『第 8 楼』:  

可是改变屏幕颜色毕竟比使用ANSY.SYS听起来更诱人一些

2003-3-2 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复
Roy
管理员

專業島民



积分 4869
发帖 1633
注册 2002-12-10
状态 离线
『第 9 楼』:  

楼顶的好像是由Windows98讀我檔转贴來的



我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
2003-3-3 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
LanE
银牌会员




积分 1832
发帖 647
注册 2002-11-8
状态 离线
『第 10 楼』:  

呵呵
好象是
windows的系统目录下的*.txt文件里面有很多的好动西的

2003-3-3 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复
阿海
高级用户




积分 748
发帖 188
注册 2003-3-28
状态 离线
『第 11 楼』:  

我想请问大侠:如何设置文件名的颜色,如:.SYS用蓝色表示,.ZIP的用黄色表示等等

2003-4-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 12 楼』:  



  Quote:
以下是引用阿海在2003-4-10 23:00:48的发言:
我想请问大侠:如何设置文件名的颜色,如:.SYS用蓝色表示,.ZIP的用黄色表示等等

最好的方法是用SuperDIR,可在网站的“文件工具”中下载。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-4-10 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
阿海
高级用户




积分 748
发帖 188
注册 2003-3-28
状态 离线
『第 13 楼』:  

但是SDIR不支持中文

2003-4-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 14 楼』:  

先启动DOS汉字系统,例如UCDOS、CCDOS97等,再运行SDIR就支持中文了。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-4-10 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
阿海
高级用户




积分 748
发帖 188
注册 2003-3-28
状态 离线
『第 15 楼』:  

不行,我试过了,无法显示

2003-4-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: