40.AutoRun原理揭密
众所周知,在一台运行Windows95/98或WindowsNT4.0以上版本的计算机中(本文以Windows95为例),只要在光驱中放一张CD盘,它就播出美妙的音乐来,如果放入一张软件光盘,它上面的一些程序就会自动执行,这个程序也许就是这个软件的安装程序,也许是这张光盘的内容介绍。Windows95的这一特性给我们广大计算机用户在使用上带来了许多方便,同时也大大提高了计算机的智能程度。那么Window95是如何实现这种功能呢?
原来,Windows95的文件系统核心部分有一个叫"卷跟踪"的虚拟设备驱动程序(VxD),它负责监视软盘、CD-ROM等可移动介质是否会改变。如果这些介质上的文件在被打开以后还没有关闭就取走这些介质,卷跟踪程序就会检测到这一点,立即向用户发出警告(显示器变"蓝脸"),要求用户插入原盘。当用户将光盘放入CD-ROM驱动器时,"卷跟踪" 虚拟设备驱动程序就会自动检测光盘的类型,如果是CD盘,系统就会自动调出 CD Player来播放CD;如系统检测到光盘具有PC文件系统,系统就会继续检测光盘上是否具有AutoRun.inf文件,该文件指定了AutoPlay运行的程序。通过在autorun.inf中指定文件,你可以运行光盘上的任何应用程序,当然最典型的应用程序还是应用软件的启动和安装功能。
所有的Inf文件的内容都是ASCII文本,用来为Setup程序提供安装信息,在Windows\system 目录下就有很多inf文件。Inf文件像INI文件一样分成许多节,且内容也很多。但是AutoRun.inf文件则比较简单,只有[autorun]一节,在这一节中最基本的命令就是open,用它来指示Windows95系统自动运行哪个程序,例如:
[AUTORUN]
open=setup.exe
这时,Windows95在插入光盘时就会自动执行setup.exe这个应用程序,open命令指出自动运行的程序的路径和文件名。另外一个常用的命令就是icon,为光盘指定一个图标的文件名,格式为:icon=文件名,其中文件名可以指定一个图标、一个位图、一个可执行文件甚至一个动态链接库,如果指定的文件中包含不止一个图标资源,可以在文件名中加一个数字(即索引值,从"0"开始)表示第几个图标,文件名和数字之间用","分开。一旦为光盘指定图标后,在"资源管理器"和"我的电脑"中,光盘的图标都将变成你指定的这个图标。例如:icon=pname.exe,3,即使用pname.exe 文件中的第4个图标作为光盘驱动器的图标。
如果在光盘上的根目录下有autorun.inf文件,那么Windows95还会在光盘图标的右键快捷菜单中添加一个AutoPlay缺省选项。如果使用的是Windows95的中文版,在弹出的快捷菜单中显示则是"自动播放"选项,这样即使在"自动插入通告"设置被关闭的情况下,只要光驱中放有带autorun.inf文件的光盘,双击光驱图标就能执行open命令指定的应用程序。
除了open和icon命令之外,在autorun.inf文件中还可以使用shell命令,用来向光盘图标的弹出菜单中添加更多的自定义菜单项。下面的两行语句为快捷菜单中添加了Demo选项,并且为菜单项设置快捷键"D":
shell\verb\command=pname.exe
shell\verb=&Demo
其中,第一行定义了verb的动作,第二行指明了执行动作的菜单选项,这个动词"verb"可由光盘生产者自己指定,但一定要保证前后定义的一致性和命令的完整性。在一般情况下,自动播放(AutoPlay)是弹出菜单的缺省选项,你也可以用shell命令将AutoPlay命令更改为特殊的命令。 其实,自动运行(autoplay)不仅可以在光盘上实现也可以在软盘、硬盘甚至虚拟盘和网络驱动器上实现。但是这得修改windows95注册表的有关信息才能实现。在注册表编辑器中, HKEY_CURRENT_USER/SoftWare/Microsoft/windows/currentverson/picilies/explorer的键值NoDriveTypeAutoRun是一个四个二进制数据组成的键值,其中第一个字节表示哪些驱动器的自动播放(Autoplay)有效,下表就是这一字节的8位二进制数的具体含义。(注:二进制数为0时有效,为1时无效。)
位 位屏蔽常数 含义
0(低位) DRIVE_UNKNOWN 不识别的驱动器类型
1 DRIVE_NO_ROOT_DIR 根目录不存在
2 DRIVE_REMOVEABLE 软盘
3 DRIVE_FIXED 硬盘
4 DRIVE_REMOTE 网络驱动器
5 DRIVE_CDROM CD_ROM
6 DRIVE_RAMDISK 虚拟盘
7(高位) 保留
所以,你只要修改其中的某一位,就能使对应的驱动器AutoPlay有效,如果你想使软盘的AutoPlay有效,请按下面的步骤进行:
启动注册表编辑器,使用查找命令,在"查找目标"对话框中输入"NoDriveTypeAutoRun",单击查找下一个,在找到的"NoDriveTypeAutoRun"上双击,将其值由0000 95 00 00 00 (系统的缺省二进制值)更改为0000 91 00 00 00确定以后,退出注册表编辑器,重新启动计算机 以后,使更改生效。在你的软盘根目录下,存放一个Autorun.inf文件,将open和icon命令各指向一个存在的文件,双击"我的电脑"或"资源管理器"中的软盘驱动器图标,看一看效果如何?
由上表不难看出,系统的缺省设置是光驱、硬盘虚拟盘的自动播放有效。所以你想要屏蔽所有的驱动器的自动播放功能,只要将"NoDriveTypeAutoRun"的值改为0000 FF 00 00 00 即可。
AutoPlay的确给我们带来了许多方便,我们可以利用它的这一特性使我们的硬盘、软盘、虚拟盘及网络盘在"资源管理器"和"我的电脑"中有不同的表现,最大限度地方便我们的使用。
41.想在进入Win98前给自己来个问候或给他人一些警告信息吗?
通过增加以下两个键值,在进入Win98前,任何人都能看到你自定义内容的信息框了: 路径:[HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows\CurrentVersion\Winlogon] 键值:″LegalNoticeCaption″=″问候″ 说明:这是信息框的标题。 键值:″LegalNoticeText″=″欢迎您!″ 说明:这是信息框的文本内容。
42.不启动,也能用
我们可以使用注册表编辑器查看键值及其形式。键值有多种形式,如开关型(On/off、0/1)、数值型(二进制、DWORD值)以及字符串型。开关型主要用于系统的复选框、检查框等,而数值型用于控制选项的数值。字符串型通常用于系统显示信息。这些键值修改后是不是能立刻发生作用呢? 通常地,与“控制面板”中的图标有关的注册表选项,在修改后可以立即发生作用,例如,您可以在注册表中的HKEY_CURRENT_USER\Control Panel\keyboard分支下修改KeyboardDelay、KeyboardSpeed键值数值(如图1所示),然后在“键盘”图标中查看键盘速度。 我们发现,它们之间的变化是同步的。同样地,在图1中,修改PowerCfg主键下的键值数据也会同时修改电源管理方案中的有关选项。 但是,有关硬件、网络、服务、输入法等安装方面的键值数据,必须重新启动Windows才能发生作用。如HKEY_LOCAL_MACHINE\System\Services分支下的键值数据就须要重新启动才能对Windows发生作用。但是不重新启动Windows 95/98或者计算机也能快速地更新注册表。下面介绍这种方法。 1.按下Ctrl+Alt+Del组合键,出现对话框。 2.在该对话框中单击“Explorer”选项,然后单击“结束任务”按钮,将出现如图3所示的“关闭Windows”对话框。 3. 单击“否”按钮,系统过一会儿将出现另一对话框。单击“结束任务”按钮,则返回到Windows 95/98系统环境中。 另外,还有一种方法也能快速地重启Windows 98而使注册表得到更新,不过此方法比上面介绍的方法要慢一些。 1. 单击“开始”按钮,然后单击“关闭系统”,则出现如图3所示的“关闭Windows”对话框。 2. 单击“重新启动计算机”。 3. 按住Shift键,然后单击“是”按钮,关闭Windows 98,然后出现“Windows is now restarting…”,这样就只重新启动了Windows 98。
43.退出Windows 98时不保存环境设置
在通常情况下,在退出Windows 98时都将保存各种环境设置,以便重启时发生作用。但是在多用户操作环境下,许多用户都可能胡乱地更改系统环境的设置,这将造成系统环境的混乱。为此,我们可以通过修改注册表,使每次修改的环境设置不发生作用。下面为修改步骤。
(1) 启动注册表编辑器。 (2)打开HKEY_CURRENT_USER\Software\Micoros-oft\Windows\CurrentVersion\Policies\Explorer分支。 (3) 右击右窗格,然后从“新建”菜单中选择“DWORD值”,则在Explorer子键中将添加了一个新键值名“New value #1”,然后将新键值名更改为“NoSaveSettings”。 (4) 双击“NoSaveSettings”,然后在“编辑DWORD值”对话框的“键值”框中输入1(不保存环境的设置)或者0(保存环境的设置)。 (5)单击“确定”按钮,然后关闭注册表编辑器窗口。 (6) 重启计算机。
44.不从“开始”菜单启动应用程序
你可以为“我的电脑”设置一个弹出菜单(按右键弹出),找到上面的关键字HKEY_LOCAN_MACHINE\ System\ CurrentControlSet\ control\ FileSystem,打开子键shell,建立一个新的子键名字类似于contr1,其值设为&Control Panel,打开它, 建立子键COMMAND,修改它的默认值为%windir%/control.exe,%windir%/explorer.exe c:/ 会打开C盘的根目录,加入参数/e,用这种方式加入你喜欢的程序。
45.使用三键鼠标
你可能希望将双击功能定在中间的键上,这种操作在控制面板中无法设定,可找到 \HKEY_LOCAL_MACHINE \SOFTWARE \Logitech\ MouseWare\CurrentVersion \SerialV \0000 ,设为DoubleClick to 001。
46.修改某些重要的文件夹的名字和位置
找到注册表中的 \HKEY_CURRENT_USER \Software \Microsoft \Windows \CurrentVersion \Explorer \Shell Folders ,输入你要修改的值即可。
47.打开另一个窗口的文件夹(在拷贝文件时很有用)
找到HKEY_LOCAL_MACHINE\ SOFTWARE\ Classes\ Directory\ shell,建立一个新的主键openw,设置它的默认值为“Open New Window”(或者其它),加入新的子键command,默认值为explorer.exe %1 。
48.改变应用程序的路径
启动REGEDIT,找到Hkey_Local_Machine\Software \Microsoft\Windows\CurrentVersion\AppPaths,找到你要修改路径的程序名,双击改变路径即可。
49.在“我的电脑”中显示“计划任务”
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\MyComputer\NameSpace在该分支下创建一个主键“{D6277990-4C6A-11CF-8D87-00AA0060F5BF}”,在右边的窗口中创建字符串“默认”,设值为“Scheduled Tasks”。
50.在“我的电脑”中显示“拨号网络”
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\MyComputer\NameSpace在此分支下新建一个主键“{992CFFA0-F557-101A-88EC-00DD010CCC48}”,单击此主键,在右边的窗口中创建一个字符串值:“默认”,并设值为"拨号网络"。
51.在我的电脑中显示“打印机”
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\MyComputer\NameSpace在此分支下新建一个主键“{2227A280-3AEA-1069-A2DE-08002B30309D}”,单击此主键,在右边的窗口中创建一个字符串值:“默认”,并设值为“打印机”。
52.禁止PC在出错时发出声音
HKEY_CURRENT_USER\Control Panel\Sound在右边的窗口中,把字符串“Beep”的值改为“No”。
53.调整双击灵敏度的区域
HKEY_CURRENT_USER\Control Panel\Desktop在右边的窗口中修改“DoubleClickHeight”和“DoubleClickWidth”的值,即可改变区域大小。
54.禁止WINDOWS平滑卷动
HKEY_CURRENT_USER\Control Panel\Desktop在右边的窗口中修改“SmoothScroll”,设其值为“0”,若允许则设值为“1”。
55.开机时自动登录系统
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon下在右边的窗口中创建字符串值:“AutoAdminLogon”,并将其值设为“1”;还创建字符串值“DefaultPassword”,其值为登录时的密码,创建字符串值:“DefaultUserName”,其值为登录时所用的用户名。
56.设立缺省的用户名和公司名称
HKEY_CURRENT_USER\Software\Microsoft\MS Setup (ACME)\User Info在右边窗口中找到字符串值:“DefCompany”,“DefName”,DefCompany是指公司名称,DefName是指用户名。
57.注册你的WINDOWS98
HKEY-LOCAL-MACHINE\SOFTWARE\Miscrosoft\Windows\CurrentVersion\在右边的窗口中将“Regdone”的值改为“1”
58.自动运行光碟
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer在右边的窗口中创建一个二进制值:“NoDriveTypeAutoRun”,并将其值设为“b5 00 00 00”。
59.Win 98的注册表恢复方法
重新启动到MS-DOS方式,进入Windows/Command目录,键入scanreg /restore后回车,进入界面后,可以在5个注册表备份中选择要恢复的,重新启动后即可。
60.设置电源方案
打开HKEY_CURRENT_USER\Control Panel\PoweCfg主键下的PowerPolicies子键表示系统可以采用的所以电源方案,如“家庭/办公室桌面”方案、“便携型/膝上型”方案、“始终打开”方案。而HKEY_CURRENT_USER\Control Panel\PoweCfg主键下的字符串CurrentPowerPolicy表示当前正在使用的电源方案,其值与PowerPolicies子键的电源方案值相对应。
61.查看系统分配给光驱的可用盘符
在HKEY_LOCAL_MACHINE\Enum\SCSI主键下记录着机器上所安装的光驱信息,逐层展开后,找到字符串UserDriveLetterAssignment,其值即表示系统分配给光驱的可用盘符,例如:如果为HZ表示从H到Z可以给光驱使用。
62.解决删除虚拟光驱后原光驱无法使用的问题
将HKEY_LOCAL_MACHINE\Enum\SCSI主键下的所有子键删除,,从而删除了物理光驱和虚拟光驱的信息,重新启动,系统自动找到物理光驱,并且重新在上述子键下加入了物理光驱信息,问题解决。
63.解决安装虚拟光驱后原光盘游戏无法运行的问题
安装了虚拟光驱后,物理光驱的盘符会向后移,导致原先已经安装的光盘游戏无法运行,解决方法是:在HKEY_LOCAL_MACHINE\Software主键下找到此游戏的子键,逐层展开后,一般可以找到安装光驱盘符的键值,将其值改为现在物理光驱盘符即可。
64.在Windows中使用多重配置
在HKEY_LOCAL_MACHINE\Config下的“0001”、“0002”......等子键表示系统中所设置的多重配置。另外,在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\IDConfigDB中保存着各种配置文件标识号(即“0001”、“0002”等)和配置文件名。
65.如何查找系统的安装注册码
展开HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion,其下“ProductKey”的值即是系统安装时必不可少的注册码。
66.更改芯片的认证标识
展开HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralProcessor\0,改动其下“VendorIdentifier”的值,如有“CyrixInstead”改为“Intel CPU”后,在看看“系统属性”对话框,哈哈,可不要给自己骗喽!
67.更改标准时间的名称
展开HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation,改StandardName的值即可。例如将“中国标准时间”改为“北京标准时间”。
68.查看系统中的16位和32位.dll文件
Windows 95/98中的动态链接文件有16位和32位之分,展开HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager,其下子健“Known16DLLs”和“KnownDLLs”分别包括了系统中的16位和32位.dll文件,用户可以对应查找。
69.使文件显示扩展名
Windows 95/98文件的默认显示方式为只显示文件名,而不显示扩展名。我们可以通过将HKEY_ USER\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced下的DWORD值“HideFileExt”的值由1改为0后即可显示文件的扩展名。
70.当删除与注册表相关的文件或目录时,如何让注册表不再发出警告
我们在删除某些文件目录,或更改它们的名字时,Windows98提示:“这个文件或路径与注册表相关,真要改变吗?”别被它吓着您,进入HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths下,查看App Paths下面有没有该目录的东西在内,将它们删除系统就不会再提示您,但您必须清楚地知道这个项目已经没用了。
|