Chinaunix首页 | 论坛 | 博客
  • 博客访问: 706568
  • 博文数量: 214
  • 博客积分: 5015
  • 博客等级: 大校
  • 技术积分: 2285
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-18 17:02
文章分类

全部博文(214)

文章存档

2008年(43)

2007年(171)

我的朋友

分类:

2007-08-08 15:02:07

一、 锁\开键盘代码
   代码定义:
     锁键盘:ESC[2h
     开键盘:ESC[2l
   应用:
   1.直接在键盘上顺序敲入Esc+[+2+h四键,键盘即被锁住。
   2.在C语言程序显示字符串中包含锁代码:printf(″%c[2h字串″,'\033')。
   3.在shell程序中用echo命令:echo″^[[2h字串″.注Esc键在vi编辑器中输入方法为:Ctrl+v,然后按一下Esc键,在屏幕上显示^[表示已输入。 同样显示开锁代码则键盘被解锁。
二、 删除字符代码
   代码定义:
   ESC[nX:清除光标右边n个字符,光标不动。
   ESC[K或ESC[OK;清除光标右边全部字符,光标不动。
   ESC[1K:清除光标左边全部字符,光标不动。
   ESC[2K:清除整行,光标不动。
   ESC[J或ESC[OJ:清除光标右下屏所有字符,光标不动。
   ESC[1J:清除光标左上屏所有字符,光标不动。
   ESC[2J或ESCc:清屏,光标移到左上角。
   ESC[nM:删除光标之下n行,剩下行往上移,光标不动。
   ESC[ :删除光标右边n个字符,剩下部分左移,光标不动。
   应用:
   一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
三、 插入字符代码
   代码定义:
   ESC[n@:在当前光标处插入n个字符。
   ESC[nL:在当前光标下插入n行。
   应用:
   一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
四、 移动光标
   代码定义:
   ESC[nA:光标上移n行。
   ESC[ :光标下移n行。
   ESC[nC:光标右移n个字符。
   ESC[nD:光标左移n个字符。
   ESC[ mH :光标定位到第n行m列(类似代码ESC[ mf)。
   应用:
   1.一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
   2.用shell编辑的菜单程序中定位光标,如:
   echo″^[[10;30H请选择:[ ]^[[9C\c″,则先把光标定位到10行30列,然后显示″请选择[ ]″,最后
光标右移9个符定位到中括号内等待用户响应。
五、 定义字符显示属性代码
   代码定义:
   ESC[ ;……m 其中属性值p可以是一个或多个,具体定义如下:
   p 含义
   0 清除所有属性
   1 高亮度显示
   4 下划线(如果硬件支持的话)
   5 闪烁(如果硬件支持的话)
   25 无闪烁
   7 反场(前背景交换)
   27 无反场
   8 隐藏(不显示)
   10 选择基本字体
   11 选择第一替代字体;让ASCII值小于32的字符显示时直接取自ROM芯片内
   12 选择第二替代字体;在作为ROM字符显示之前先压缩扩展高位ASCII码值
   30 前景黑色
   31 前景红色
   32 前景绿色
   33 前景褐色
   34 前景蓝色
   35 前景紫色
   36 前景蓝绿色
   37 前景白色
   38 开启下划线标志;白色前景用白色下划线
   39 关闭下划线标志
   40 背景黑色
   41 背景红色
   42 背景绿色
   43 背景褐色
   44 背景蓝色
   45 背景紫色
   46 背景蓝绿色
   47 背景白色
   应用:
   Unix系统提供的setcolor命令是以行为单位改变颜色,在实际运用中有它的局限性,上面提到的控制代 码在日常生活中用得最多,尤其适合于彩色弹出式立体菜单的设计。如我设计的中心机房值班程序,由于    用了这些控制代码,界面非常友好。
六、其它代码
   代码定义:
   ESC7或ESC[s:保存当前光标位置参数及字符属性。
   ESC8或ESC[u:恢复保存的光标位置参数及字符属性。
   \n :插入换行符
   \t :插入一个Tab键。
   \r :插入回车符。
   ^G :插入响铃符(pc嗽叭鸣叫一次),在vi中按Ctrl+g即可输入。
   \c :用于shell程序中,不换行。
   应用:
   1.用户界面设计。
   2.用于中心机房向储蓄柜面发通知的程序中(结合实达终端屏幕保存代码ESC[/ mr__保存从n行到m行的 内容,恢复代码ESC[/11)
七、应用举例
   1.彩色立体菜单(shell语言):
    setcolor-b white
    clear
    while true
    do
    echo″
    ^[[8;20H^[[34;43m┍—————————┒^[[47m
    ^[[9;20H^[[34;43m | 1 日 间 业 务 | ^[[40m ^[[47m
    ^[[10;20H^[[34;43m| 2 环 境 维 护 | ^[[40m ^[[47m
    ^[[11;20H^[[34;43m| 请 选 择 [ ]| ^[[40m^[[47m
    ^[[12;20H^[[34;43m┕      ┛^[[40m^[[47m
    ^[[13;22H^[[40m     ^[[47m
    echo″ ^[[11;40H\c″
    read acc
    done
   2.向储蓄所发通知(C语言):

    #include<stdio.h>
   main()
   {
   printf(″%c7%c[/2;4r″,'\033',\033');
   printf(″%c[2;5H%c[2K 紧急通知 ″,'
\033','\033');
   printf(″%c[3;5H%c[2K由于线路问题,今天不办新余市通存通兑业务“,'
[033','\033');
   printf(″%c[4;5H%c[2K 中心机房 1998.11.20%c8″,'
\033','033','\033');
   fflush(stdout);
   sleep(10);
   printf “%c[/11″,'
\033

   说明:该程序首先保存光标位置,同时保存2至4行内容 ,接着定位光标到2行5列,清除该行原先内容, 然后显示“紧急通知”字样,通知显示完后立即恢复光标位置,然后等待10秒钟后恢复屏幕原先内容 。
阅读(435) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~