自动设置DOS系统屏幕颜色的小程序

Author: 孙刚 Date: 1997-01-01

  DOS系统开机后屏幕颜色单调,如何改变这种情况呢?笔者用Turbo C 2.0编制了CLSZ程序,该程序有如下功能:
#2  1.开机时可自动设置屏幕颜色。
  CLSZ可带2个参数,第1个为字符颜色,共有16种,取值范围0-15,第2个参数为屏幕颜色,共有8种,取值范围0-7。
  设CLSZ.C经过编译生成的CLSZ.EXE在C:\下。
  方法:在C:\AUTOEXECBAT文件中加入以下2行:
  PATH C:\
  CLSZ 11 4
  重新启动后DOS屏幕颜色即变为红色,字符为淡青色。
#2  2.在任意时刻改变字符和屏幕颜色。
  CLSZ有下面三种用法:
  CLSZ  字符颜色值  屏幕颜色值
  CLSZ(缺省设置字符颜色为黄色,屏幕颜色为兰色)
  CLSZ ?(显示帮助信息,命令格式及数字代表的颜色)
#3  下面是CLSZC源程序,供大家参考。
  #include <stdioh>
  main(int argc,char *argv[])
  { if(argc==2&&argv[1][0]==?)help();
  else if(argc==3&&atoi(argv[2])<8 &&atoi(argv[1])<16)
  {textattr((char)((atoi(argv[2])<<4)|atoi(argv[1])));
  clrscr();
  }
  else {textattr(0xle);
  clrscr();
  }
  }help()
  { int i;
  char ys[][15]={"BLACK","BLUE","GREEN","CYAN","RED","MAGENTA","BROWN","LIGHTGRAY","DARKGRAY","LIGHTBLUE","LIGHTGREEN","LIGHTCYAN","LIGHTRED","LIGHTMAGENTA","YELLOW","WHITE"};
  textattr(3);clrscr();
  textattr(12);
  cprintf("Usage:CLSZ [QJ][BJ]\r\n");
  cprintf("[QJ]=0-15[BJ]=0-7\r\n");
  cprintf("Example1:CLSZ \r\n");
  cprintf("Example2:CLSZ ?\r\n");
  cprintf("Example3:CLSZ 3 0\r\n");
  for(i=0;i<16;i++)
  {gotoxy(2,7+i);
  textattr(15);
  cprintf("%2d",i);
  textattr(i);
  cprintf("=%s",ys[i]);
  gotoxy(20,7+i);
  textattr(7);
  if(i<8)cprintf("([QJ] or [BJ])");
  else cprintf("([QJ])");
  }
  textattr(3);gotoxy(1,7+16);}