写入键盘缓冲区的源程序
请看例程(请编译后执行,不要在编程环境中执行)
bat$ = "DIR/P" + CHR$(13) ''在本程序中此句是模拟键盘输入DIR/P然后按回车键
DEF SEG = &H40 ''''定义起始地址
FOR i = 1 TO 6
batAsc = ASC(MID$(bat$, i, 1)) ''''将字符转换成ASC码值
POKE &h1d+(i-1)*2, batAsc ''''将值写入键盘缓冲区
NEXT i
POKE &H1A, &h1d ''''键盘缓冲区的头
POKE &H1C, 11 ''''键盘缓冲区的尾
DEF SEG ''恢复段址
这个程序虽然代码不多,可是比我写的鼠标调用要难得多,在实验这个程序的时候不只死机了多少次!(并且在WINDOWS下死得很彻底!当然在DOS下也一样)才弄清楚键盘缓冲区的结构!这个结构可跟书上讲的不一样啊!因为书上没有讲操作系统是如何处理键盘缓冲区的!
这个程序可以用来写开机菜单!就向有些D版的光盘,开机后,有许多选项,例如当你选择了自动安装操作系统,菜单程序就会向键盘缓冲区写“SETUP”等等这样的内容,然后菜单程序结束,操作系统读键盘缓冲区的内容,并执行它!
如果你用SHELL “DIR/S”这个语句也能执行DIR命令!
它与SHELL语句最大的区别是
SHELL是在程序运行中执行,要占用系统内存!
而写键盘缓冲区后,DIR会在程序结束后执行!
注意:程序里面的DIR/P这个字符串可以是别的内容!