标题: 程序退出后写键盘缓冲区的源程序
[打印本页]
作者: qb45
时间: 2003-9-23 00:00
标题: 程序退出后写键盘缓冲区的源程序
唉!我发的帖子太菜了,都没有人看,真伤心啊!
呜呜呜。。。。。。。。。。。。。。!
就只有ATLaS回了一篇,真感动咧!
呜呜呜。。。。。。。。。。。。。。。。!
如果没人回,程序还是不发了,免得丢人哪!!!
呜呜呜。。。。。。。。。。。。。。
作者: ATLaS
时间: 2003-9-23 00:00
呵呵,不要灰心,鼓励一下。

不过我很久没用过basic了,那时用的还是gwbasic,更老的还是apple ii自带的basic。
不一定要发源代码上来,有时候讲讲思路,给出个伪码,大家的联想可能会更多些,讨论也就积极了。
作者: QB45
时间: 2003-9-30 00:00
谢谢啦!
你说的对!我就讲个思路吧!反正大家又不会BASIC 。实际上QB4。5编译成EXE文件并不需要库的支持,是可以编译成单独的一个EXE文件的(提外话了)
我还是讲讲则个程序把!
操作系统从41A的地址起有32个字节的键盘缓冲区。当你的程序运行结束后如果往此处写了内容,(例如“MENU。BAT”当然是ASC码直而非字符)系统就会执行MENU。BAT这个命令!
作者: iceboy
时间: 2003-10-4 00:00
还是给部分关键源码吧
作者: cn_archer
时间: 2003-10-4 00:00
呵呵,偶可是有看到帖子就回啊!
作者: QB45
时间: 2003-10-8 00:00
写入键盘缓冲区的源程序
请看例程(请编译后执行,不要在编程环境中执行)
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这个字符串可以是别的内容!
[此贴子已经被作者于2003-12-9 18:08:11编辑过]
作者: QB45
时间: 2003-12-9 00:00
如果大家结合我发过的调用鼠标按纽的那篇帖子,可以自己做一个图形界面的开机菜单,在AUTOEXEC。BAT里加载。
当然,你还可以做些别的功能在里面!
大家有好的想法和程序不要毒自想用!
作者: folly
时间: 2003-12-9 00:00
你能不能叙述的清楚点,我不知道你的那个有什么用?
作者: QB45
时间: 2003-12-9 00:00
呵呵 :)
你这样问啊!我也不知道有什么用!不过我想你没有真正用过QB吧!你如果把字符“DIR/P”改成“FDISK”又会出现别的FDISK这个工具,如果改成“SETUP”,并且在WIN98安装目录下,那么会出现WIN98的安装界面!
我只用它做过开机菜单,当然还可以给GHOST做个壳!还有很多、很多,我只是从技术上讨论一下程序在退出后还能执行别的程序软件这个问题,给大家个我实验过、]可以用的例程。
程序很简短我又特地加了注释!我自己用的是做成子程序了,在这个基础上改进过的,可以是任意的16个字符
至于你用不用,或者是懂不懂这就不是我关心的了。(我怕我上面的讲解不够清楚,特地在QQ上问了刚刚学QB的,他说看得懂,很明白)