精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● Windows>>【经验与技巧】>>Windows为DOS 16位程序建立快捷方式的发

主题:Windows为DOS 16位程序建立快捷方式的发
发信人: chinahong()
整理人: (2000-08-22 02:44:12), 站内信件
前言:

  呵呵,这么久没写文章了,想到以前发现的这个东东,顺便捉来写成一帖。
就做为当WINDOWS版主以来发的第一帖关于WINDOWS的原创帖子了。

正文:

  因为某些原因装上了QB4.5, 顺便在桌面上为其建立快捷方式,在首先出现
的窗口的命令行栏里填入“C:\QB45\QB.EXE”,然后单击“下一步”,如果平时
建立DOS程序的快捷方式,那么在下一步的“选择快捷方式的名称”一栏里默认出
现的应该是程序的MSDOS名,再点击下一步,可为DOS程序选择一个图标,然后才
告完成。可是此时却出现与平时不同的现象,这一栏里默认的程序名不是“QB”
,而是“Microsoft QuickBASIC”,也就是说系统自动识别该程序是QuickBASIC
,而且下面没有“下一步”按钮,只有“完成”按钮,单击完成后发现,系统也
自动为其添加一个图标,但不是平时的那个MS-DOS图标,而是另外的,专为DOS下
QB设计的。难道WINDOWS会自动识别某些旧的DOS程序?但是因为系统中同时装有
VB,而VB和QB也有很大的关系,所以暂时无法确认是WINDOWS还是VB。为此特做了
一番试验。将一些普通的DOS程序,为其建立快捷方式,过程与平时无异。因此,
将WINDOWS下的一些运行于MSDOS窗口的程序如COMMAND.COM、FTP.EXE、PING.EXE
建立快捷方式,前者建立后系统自动为其起名为“MS-DOS 方式”,同时自动选择
图标,与开始菜单中的“MS-DOS 方式”相同;后两者默认快捷方式名仍为文件名
,但没有让其选择一个图标,并且没有为其自动选择一个图标。有点奇怪,决定
将原来文件更名,另找一DOS程序改名为FTP.EXE、PING.EXE试验。为假的FTP.EX
E做快捷方式时,默认快捷方式名仍为文件名,但有让选择图标。而为PING.EXE做
快捷方式时,却又出现了和QB同样的情况,默认快捷方式名为“FTP PING Utili
ty”,并自动为其选择一个图标。奇怪?为何各不相同?直到后来无意中查看了
真的FTP、PING的属性,发现其属性的显示方式和32位程序类似,而不是和DOS的
16位程序类似,怀疑其实为32位程序,不过运行于MSDOS方式下而已,故退出WIN
DOWS进入纯DOS运行两程序,果然提示该程序是32位程序,无法运行于纯DOS方式
。由此,可解出前面为真FTP.EXE、PING.EXE建立快捷方式之谜,WINDOWS系统是
按照为32位程序建立快捷方式的方法为其建立快捷方式,而一般32程序都自带图
标,所以WINDOWS系统不用再让其选择图标。而FTP、PING常运行于DOS窗口下,所
以让人误以为是DOS的16位程序(呵呵,至少我一直是这样认为的)。那么其它的
现象呢?受刚才属性的启示,打开QB快捷方式的属性(没想到我平时那么喜欢看
文件的属性,这时却不知道去看),看了一阵,找出提供图标的文件是WINDOWS目
录下的moricons.dll文件。再查看该文件的说明是“Icons for application sh
ortcuts”,就是说该文件为应用程序的快捷方式提供图标。仔细看看这个文件中
的其它图标,发现许多图标上的文件都是DOS时代一些软件的图标,如MS C,MS 
WORD FOR DOS,TURBO PASCAL,BORLAND C++......等等一大堆,也就是说如果你
装了这些DOS程序,并为建立快捷方式,那么WINDOWS就会识别这些东东,自动为
其命名并加上相应的图标。刚才提到的PING.EXE也是这样,不过那个PING是假的
。所以由此总结出来,如果要建立快捷方式的程序是DOS下的16位程序,且文件名
和WINDOWS系统所认识的那些程序的主程序名相同(不管是真是假),WINDOWS系
统为自动为其命名并加入相应的图标,而QB的和VB没有什么关系。不信,你可以
试试(呵呵,顺便帮我验证一下),找到WINDOWS目录下的SETVER.EXE(这东东是
真正的DOS 16位程序),改名为QB.EXE,再为其建立快捷方式,你会有发现的哦

OK,正文结束。

结束语:

  没别的话,就是想骂这帖子,费了我一个多小时(又要回想一下,又要确认有
没有弄错),手都打酸了。

--
要去看看吗?
http://ahong.soim.net
[email protected]

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: max1-59.ptptt.f]

[关闭][返回]