关于linux命令pict的信息( 二 )


副档名是档案型别的标志,WinXP会依据副档名赋予档案不同的图示,并可启动对应的关联程式对其进行相关操作 。故而,修改副档名会直接影响一个档案的正常使用,为此系统多会提出警告,让使用者明白这是十分危险的操作 , 改副档名对初学者似乎成了一个禁区 。抱着怀疑的态度,我进行了一番摸索,终于深刻领悟到,拘泥于传统的束缚,实为学习电脑知识的大敌 。不知各位看了下面的剖析是否会有同感!
一、副档名与档案格式
大家知道Win9X启动画面 , 可用启动盘根目录下Logo.sys档案生成 , 它原本是个BMP图片,只是改动一个位元组后(为使画面底端滚动条动起来,将该档案第32h位元组处的00h改成ECh),换了副档名而巳 。需指出的是,此档案并不受副档名的限制 。不信你用任一款磁碟编辑器(如Hedit或Diskedit),开启Io.sys档案查询字串“Logo.sys” (如图1),将它改为“1234.123” , 再把Logo.sys档案也重新命名成1234.123,你会发现该画面依然能在启动时出现 。由此可见,一些系统直接呼叫的档案,是不分副档名的;且副档名不同,并不代表档案格式不同,有些档案只需简单的改变副档名,就能完成档案型别的转换 。还可举出一些例子,如:Win98系统能用BMP图片做图示,无论把一个BMP图片改成什么副档名,只要你仍指定用它做图示,保证没问题(ICO档案也是如此) 。其实有的档案型别,如:SYS型别,并无固定的档案格式 。同样Msdos.sys在旧版DOS中是二进位制档案,而到了Win9X下便成为文字档案了 。还有的型别原本就是同一种格式,只是换了副档名而巳 。如:SCR型别(萤幕保护程式),它可是地道的可执行档案 。改一个SCR副档名为EXE试试,执行它将开启屏保设定对话方块(如果有的话),若在命令列加上“/S”引数便能执行此萤幕保护了 。把它放在自己的软体中来呼叫(有些程式设计软体只能呼叫EXE型别档案),定会增色不少! 必须着重提一笔的是TXT型别(纯文字),诸如BAT、INI、INF、HTM、HTT等许多常见而重要的档案型别都是纯文字格式 。更多的例子不胜列举 , 以至我已养成一种习惯,只要碰到有不明用途的小档案(64KB以下) , 总喜欢用记事本开启看看 。这些型别的档案都有一些比较规则的排列布局 , 以及特定的关键字串 。平时注意多观察多研究,往往能找出其中的规律和关键字的用法 , 从而使自己拥有一条深入学习软体并挖掘软体潜力的捷径 。还是举个例项:刚装Win98时,工作列的[快速启动]组中有个[显示桌面]图示,后来无意间被我删掉了 。经过研究 , 发现其本质也是文字格式 。开启记事本,编辑如图2所示的一段内容: 用副档名SCF存档,便又有了个[显示桌面]图示 。同理 , 再找几个SCF档案,也许你会有更多的发现 。
二、副档名与档案型别
系统是按档案型别确定关联程式的 。这里所说的“档案型别”,是指[资料夹选项]中[档案型别]栏列出的各个专案 。随着Windows日渐深入人心 , 必须更新一个传统认识上的误区:副档名与档案型别划等号 。虽然常规方法只能建立二者之间一一对应的关系,但通过登录档这个“后门”,却总会有些特例 。在登录档中,副档名和档案型别名是HKEY_CLASSES_ROOT主键(以下简称HKCR)下的同一级主键,副档名主键的预设值正是其对应的档案型别主键名 。一般来说,同一档案型别能对应多个副档名,如[JPEG档案]型别有JPG、JPE、JPEG等副档名;[文字文件]型别有TXT、EXC、DIC等副档名(如图3);此外还有[HTML档案]、[MPEG档案]等型别均是如此 。产生这种现象的原因,大部分是出于相容性的考虑 。而同一时刻 , 一个副档名对应的档案型别却是唯一的 , 说“同一时刻”是因为并非一个副档名只能对应一种档案型别 。很多随系统安装一起注册的副档名,被其它程式改变其所属型别后,仍储存著原型别记录,当新型别被解除安装后,它还可自动恢复 。典型的例子:在安装ACDSee32后 , 你可以从选项中自动把JPG图片重新注册为[ACDSee JPG Image]型别 , 这时开启登录档将会看到HKCR\.jpg主键下多了个UndoClass主键(如图4),预设值还是jpegfile(原型别主键名) 。特殊情况下没有对应副档名照样也能注册档案型别 。例如:[资料夹]型别和[驱动器]型别,它们都是用由一长串字元组成的CLSID来注册的 。还有像众多网路方面的协议型别 , 为适应不同操作平台的需要,也没有用副档名注册 。我们不难发现,绝大部分重要的档案型别及各种特定操作(如:剪下、复制)都有自己的CLSID,研究它们非常枯燥,有耐心的朋友,不妨自己尝试看看 。这时 , 所谓“档案型别”已经超越出传统意义上的“档案”范畴 , 有了更广义的内涵 。此外,还想告诉大家个小窍门(如图5):在登录档里任意档案型别主键中,新建名为EditFlags的[二进位制值](显示的是16进位制数,且低位在前,高位在后),它能决定所对应型别的编辑级别 。当取值是01 00 00 00时,在[档案型别]栏里便找不到该型别的身影,使别人无法编辑;当值为d2 01 00 00时,则其在上栏中会显示,却不能删除,也不能修改型别说明及关联操作 。还可取很多值,如将这些值用二进位制来表示,你就会明白 , 其实每一位都对应着一个按钮或一个可编辑的内容(1代表禁止,0代表启用,只有二进位制数最后两位是10时,该型别才会显示),多改改就能理解它的含义了 。

推荐阅读