installshield的使用

installshield的使用,第1张

请参考以下步骤 *** 作:
创建一个基于 Windows 的应用程序
在“文件”菜单上单击“新建项目”。
在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic”,然后单击“模板”窗格中的“Windows 应用程序”。在“名称”框中键入“My Notepad”。
单击“确定”关闭对话框。
项目添加到“解决方案资源管理器”中,并且“Windows 窗体设计器”打开。
在“工具箱”中选择“所有 Windows 窗体”选项卡,然后将一个 Button 控件拖到窗体中。
双击 Button 控件为该按钮添加事件处理程序。在事件处理程序中添加下面的代码:
复制代码
Shell("Notepadexe", AppWinStyleNormalFocus)
这将启动 Notepadexe 并将焦点对准它。
在“生成”菜单上单击“生成 My Notepad”[Build My Notepad]以生成该应用程序。
创建部署项目
在“文件”菜单上指向“添加”,然后单击“新建项目”。
在“添加新项目”对话框中,打开“项目类型”窗格中的“其他项目类型”节点,单击“安装和部署项目”,再单击“模板”窗格中的“安装项目”。在“名称”框中,键入“My Notepad Installer”。
单击“确定”关闭对话框。
项目添加到“解决方案资源管理器”中,并且“文件系统编辑器”打开。
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“属性”窗口中,选择“ProductName”属性,键入“My Notepad”。
说明:
“ProductName”属性指定在文件夹名称和“添加或删除程序”对话框中为应用程序显示的名称。
将基于 Windows 的应用程序添加到安装程序中
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“文件系统编辑器”中,选择“应用程序文件夹”节点。
在“项目”菜单上指向“添加”,然后单击“项目输出”。
在“添加项目输出组”对话框中,从“项目”列表中选择“My Notepad”。
从列表中选择“主输出”组。在“配置”框中,选择“(活动)”。单击“确定”关闭对话框。
在“生成”菜单上单击“生成 My Notepad Installer”[Build My Notepad Installer]。
部署应用程序(基本安装程序)
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“项目”菜单上单击“安装”。
此时,将运行安装程序(安装向导),并在开发计算机上安装“My Notepad”。
说明:
您必须在计算机上拥有安装权限才能运行该安装程序。
可选的部署功能
此步骤演示了可选的部署功能。此步骤为应用程序创建一个快捷方式,该快捷方式将在安装过程中放置到目标计算机的桌面上。
为基于 Windows 的应用程序创建快捷方式
在“解决方案资源管理器”中选择“My Notepad Installer”项目。
在“文件系统编辑器”中,选择“来自 My Notepad 的主输出”节点。
在“ *** 作”菜单上单击“创建来自 My Notepad 的主输出的快捷方式”[Create Shortcut to Primary Output from My Notepad]。
此时,将会添加一个名为“来自 My Notepad 的主输出的快捷方式”节点。
将该快捷方式重命名为“My Notepad 的快捷方式”。
选择“My Notepad 的快捷方式”,将它拖到左窗格的“用户桌面”文件夹中。
创建文件关联
此步骤为“My Notepad”添加文件关联,以便在双击 vbn 文件时打开“My Notepad”应用程序。
为基于 Windows 的应用程序创建文件关联
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“视图”菜单上指向“编辑器”,再单击“文件类型”。此时将会显示“文件类型编辑器”。
在“文件类型编辑器”中,选择“目标计算机上的文件类型”节点。在“ *** 作”菜单上单击“添加文件类型”。
此时,将会添加一个名为“新文档类型 #1”的节点,该节点打开以便于重命名。
将“新文档类型 #1”重命名为 Vbndoc。
在“属性”窗口中,将文件类型的“Extension”属性设置为 vbn。
选择“Command”属性,单击省略号(“”)按钮。在“选择项目中的项”对话框中,定位到“应用程序文件夹”,选择“来自 My Notepad 的主输出”。
单击“确定”关闭对话框。
添加注册表
此步骤将一个注册表项以及相应的值添加到注册表中。运行时,可以从应用程序代码中引用此注册表项以检索用户特定的信息。
为基于 Windows 的应用程序添加注册表项
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“视图”菜单上指向“编辑器”,再单击“注册表”。此时,将会显示“注册表编辑器”。
在“注册表编辑器”中,选择“HKEY_CURRENT_USER”节点并展开它,再展开“Software”节点,然后选择“[Manufacturer]”节点。
说明:
“[Manufacturer]”节点用方括号括起来,以表示它是一个属性。它将被替换为输入的部署项目的 Manufacturer 属性值。
在“ *** 作”菜单上指向“新建”,然后单击“项”。
将该注册表项重命名为 UserChoice 并选定它。
在“ *** 作”菜单上指向“新建”,然后单击“字符串值”。
将字符串值重命名为 TextColor。
在“属性”窗口中,选择“Value”属性,输入 Black。
添加自定义安装对话框
此步骤添加并配置一个在安装期间显示的自定义用户界面对话框。
添加自定义安装对话框
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“视图”菜单上指向“编辑器”,再单击“用户界面”。此时,将会显示“用户界面编辑器”。
在“用户界面编辑器”中,选择“安装”节点下的“启动”节点。
在“ *** 作”菜单上单击“添加对话框”。
在“添加对话框”对话框中,选择“复选框(A)”。
单击“确定”关闭对话框。
右击“复选框(A)”对话框,选择“上移”两次,将其定位到“安装文件夹”对话框的上面。
在“属性”窗口中,将“BannerText”属性设置为“示例”。
将“BodyText”属性设置为下面的内容:
“安装示例”复选框控制是否安装示例文件。如果该复选框保留为未选中状态,将不安装示例。
将“CheckBox1Label”属性设置为“安装示例吗”
将“Checkbox2Visible”、“Checkbox3Visible”和“Checkbox4Visible”属性设置为“False”。这将隐藏其他复选框。
使用示例
此步骤创建一个 Samples 子文件夹,它将被安装到 Application 文件夹的下面。
添加 Samples 文件夹
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“视图”菜单上指向“编辑器”,再单击“文件系统”。选中“应用程序文件夹”(如果尚未选中)。
右击“应用程序文件夹”,指向“添加”,再单击“文件夹”。
将“新建文件夹 #1”重命名为 Samples。
此步骤创建两个示例文本文件,如果用户在自定义对话框中选中了“安装示例”选项,将会安装这两个文本文件。
为应用程序创建示例文件
使用记事本或其他文本编辑器,创建一个包含文本“这是 rulesvbn”的文本文件。将其另存为 Rulesvbn。
说明:
若要防止记事本自动添加 txt 扩展名,请从“文件类型”列表中选择“所有文件”。
再创建一个包含文本“这是 memovbn”的文本文件。将其另存为 Memovbn。
此步骤将示例文件添加到 Samples 文件夹中,并设置决定是否安装该文件的条件。
将示例添加到安装程序中
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“视图”菜单上指向“编辑器”,指向“文件系统”,再选择“Samples”文件夹。
在“ *** 作”菜单上指向“添加”,再单击“文件”。将“Rulesvbn”和“Memovbn”文件添加到“Samples”文件夹中。
在“文件系统编辑器”中选择“Rulesvbn”文件。
在“属性”窗口中,将“Condition”属性设置为 CHECKBOXA1=1。运行安装程序时,只有在选中了此自定义复选框的情况下,才会安装“Rulesvbn”文件。
在“文件系统编辑器”中选择“Memovbn”文件。
在“属性”窗口中,将“Condition”属性设置为 CHECKBOXA1=1。运行安装程序时,只有在选中了此自定义复选框的情况下,才会安装“Memovbn”文件。
添加启动条件
此步骤检查目标计算机上是否安装了 Internet Explorer 50 或更高版本,如果未安装所需的文件,将停止安装。
添加启动条件来检查 Internet Explorer 版本
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“视图”菜单上指向“编辑器”,然后单击“启动条件”。
说明:
此步骤的用意仅仅在于说明启动条件的概念;事实上,“My Notepad”应用程序不依赖于 Internet Explorer。
在“启动条件编辑器”中,选择“目标计算机上的要求”节点。
在“ *** 作”菜单上单击“添加文件启动条件”。
此时,将在“搜索目标计算机”节点之下添加一个“搜索 File1”节点,在“启动条件”节点之下添加一个“Condition1”节点。
将“搜索 File1”重命名为“搜索 Internet Explorer”。
在“属性”窗口中,将“FileName”属性设置为 Iexploreexe,将“Folder”属性设置为 [ProgramFilesFolder],将“Depth”属性设置为 2,将“MinVersion”属性设置为 500。
选择“Condition1”节点。
将“Message”属性设置为下面的内容:
此程序需要 Microsoft Internet Explorer 50 或更高版本。请安装 Internet Explorer 并重新运行 Notepad Installer。
设置系统必备组件的属性
此步骤将属性设置为,目标计算机上没有正确版本时自动安装 NET Framework。请注意,NET Framework 20 包还将安装 Windows Installer 20 文件。
如果按照如下所示设置了系统必备属性,则单击 setupexe 后,会在运行 msi 文件前自动安装 NET Framework(这是默认设置)。有关指定系统必备组件的更多信息,请参见“系统必备”对话框。
设置部署项目的可选属性
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“视图”菜单上单击“属性页”。
在“My Notepad Installer 属性页”对话框的“安装 URL”中,指定用于安装应用程序和/或系统必备组件的服务器或网站的 URL。单击“系统必备”按钮。
在“系统必备”对话框中,请务必在“请选择要安装的系统必备组件”下选择“NET Framework” (该选项在默认情况下处于选中状态)。接受“指定系统必备组件的安装位置”下方的默认设置。
在“生成”菜单上单击“生成 My Notepad Installer”[Build My Notepad Installer]。
在开发计算机上安装
此步骤将运行安装程序并在开发计算机上安装“My Notepad”。
在开发计算机上安装“My Notepad”
在“解决方案资源管理器”中选择“My Notepad Installer”项目。在“项目”菜单上单击“安装”。
说明:
您必须在计算机上拥有安装权限才能运行该安装程序。
部署到其他计算机
此步骤将运行安装程序并将“My Notepad”安装到其他计算机。
将“My Notepad”部署到其他计算机上
在“Windows 资源管理器”中,定位到项目目录并找到生成的安装程序。默认路径将为 \Documents and Settings\您的登录名\My Documents\Visual Studio 90\Projects\解决方案文件夹名\My Notepad Installer\项目配置\My Notepad Installermsi(默认 项目配置 为“调试”或“发布”)。
将 My Notepad Installermsi、Setupexe 以及该目录下的其他所有文件和子目录复制到另一台计算机上。
说明:
若要在未联网的计算机上安装,请将文件复制到诸如 CD-ROM 的传统媒体中。
在目标计算机上双击 Setupexe 运行安装程序。
说明:
您必须在目标计算机上拥有安装权限才能运行该安装程序。
测试
此步骤将会通过桌面快捷方式测试应用程序的启动,并且还将测试该应用程序的卸载。
测试安装
验证快捷方式是否安装到了桌面上以及是否能够正确启动“My Notepad”应用程序。
使用控制面板中的“添加或删除程序”卸载该应用程序。在“添加或删除程序”中,选择“My Notepad”,再单击“删除”按钮。
说明:
若要从开发计算机上卸载该应用程序,请在“项目”菜单上单击“卸载”。
将从桌面上移除图标,从计算机上删除安装的应用程序文件和文件夹。

注册表全面了解
注册表全面了解
摘要:
是有点多,希望新手能认真的看看。如果你能看完这篇文章。我敢说,你对电脑有一个更深的理解。
关键词:
注册表,windows,等等……
正文:
防止“CD自动播放”
运行->Regeditexe->查找->AutoInsertNotification->修改 01->00
WinNT:HKEY_MACHINESYSTEMCurrentControlsetServicesCDron
在右窗格选中"Autorun"使之数值1为0
删除“快捷方式”上的箭头
运行->Regeditexe->hkey_classesl_rootlnkfile->删除isshortcut
彻底删除软件卸载后留下的残渣
运行>Regeditexe>hkey_local_machinesoftwaremicrosoftwindowscurrentversoin uninstall->删除你要卸载的软件目录
改“回收站”名字
运行->Regeditexe->hkey_classesl_rootclsid{645ff040-5081-101b-9f08-00aa002f954 e}->右窗口改“回收站”名字
改“我的电脑”“回收站”的图标
运行->Regeditexe->hkey_local_machinesoftwareclassesclsid->查找->“我的电脑” “回收站”->找到后选择
defaulticon->双击名称栏中的full或者(defaultemp)
改“windows”的名称
运行->Regeditexe>hkey_local_machinesoftwaremicrosoftwindowscurrentversoin ->右窗口的version值改为“你想要的名字”(注意:名字长度要小于等于29个字母)
调整窗口打开的速度
运行->Regeditexe->hkey_ciurrent_usercontrolpanel->dektop->增加串值“menu show dlay”->其值设为1
删除“网上邻居”的图标
运行->Regeditexe->hkey_local_machinesoftwaremicrosoftwindowscurrentversoin
explorerdesktopnamespace->删除分支
修改“软件使用权”的名称
运行->Regeditexe>hkey_local_machinesoftwaremicrosoftdeveopersetup->改为你想要的名称
清除配色方案
 在HKEY_CURRENT_USERControl PanelAppearanceSchemes下,
窗口的右边会出现系统自带的各种配色方案,将你认为无用的配色方案删除掉,一般 只保留“Windows默认”一项。
禁止打开任何文件夹
 在HKEY_CLASSES_ROOTFoldershellopenddeexec下,在右边的窗口中修改字符串:“(默认)”的值设皉em [ViewFolder("%l", %I, %S)] ”; 同时在HKEY_CLASSES_ROOTFoldershellexploreddeexec下在右边的窗口中修改字符串:“(默认)”的值设皉em [ViewFolder("%l", %I, %S)] ”。
自动关闭电源
 在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon下 ,在右边的窗口中创建一个DWORD值:“PowerdownAfter Shutdown”,并将其值设”。
允许强制关闭系统
 在我们运行程序的时候,有时会遇到软件程序没反映的现象,于是我们按CTRL+ALT+DEL来关闭系统,而当我们按下后,系统会叫我们退出前要使软件程序退出,使用本功能可允许强制关 闭系统。
 在HKEY_USERSDEFAULTControl Paneldesktop下,在右边的窗口中创建一个字符串值:“AutoEndTasks” ,并将其值设”。
  禁止光标闪动
 在HKEY_USERSDEFAULTControl Paneldesktop下在右边的窗口中创建一个字符串值:“CursorBlinkRate”,并将其值设1”。
  删除“查找”命令保留在注册表中的搜索结果
 在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionExplorerDoc Find Spec MRU下删除右边窗口中的键。
  进入Win98前给出警告信息
 在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下
 键值:〃LegalNoticeCaption〃=〃问候〃
 说明:这是信息框的标题。
 键值:〃LegalNoticeText〃=〃欢迎光临〃 说明:这是信息框的文本内容。
  WINDOWS98登录口令
 HKEY_LOCAL_MACHINENetworkLogon
 在右边的窗口中创建一个DOWRD值:"MustBeValidated",并将其值设”,在启动WINDOWS98后 按ESC键将不能显示画面。
  开机时进行“多用户登录”选择
 在HKEY_LOCAL_MACHINENetworkLogon下在右边的窗口中创建一个DOWRD值:“UserProfiles”,并将其值设”。
  开机时自动登录系统
 在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下在右边的窗口中创建字符串值:“AutoAdminLogon”,并将其值设”;还创建字符串值“DefaultPassword”,其值为 登录时的密码,创建字符串值:“DefaultUserName”,其值为登录时所用的用户名。对单机用户有意义。
  自动更新
 HKEY_LOCAL_MACHINESystemCurrentControlSetControlUpdate
 把二进制值“UpdateMode”改0 00 00 00”。
  鼠标自动激活当前窗口
 HKEY_USERSDEFAULTControl Paneldesktop
 把二进制值“UserPreferencemask”改痨F 00 00 00”。
  查看安装时输入的WIN98密码
 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion
 点击“ProductKey”,即可看到。
  改变WINDOWS有关文件的安装路径
 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetup 在右边的窗口中,有“BootHost”、“BootDir”、“SourcePath”、“MediaPath”
改变其数据内容,就可改变相关文件的路径。
  设立缺省的用户名和公司名称
 HKEY_CURRENT_USERSoftwareMicrosoftMS Setup (ACME)User Info 在右边窗口中找到字符串值:“DefCompany”,“DefName”,DefCompany是指公司名 称,DefName是指用户名。
  注册你的WINDOWS98。
 HKEY-LOCAL-MACHINESOFTWAREMiscrosoftWindowsCurrentVersion 在右边的窗口中将“Regdone”的值改”。
  自动运行光碟
 HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer在右边的窗口中创建一个二进制值:“NoDriveTypeAutoRun”,并将其值设5 00 0 0 00” 想禁止自动运行,只需改为"b5 00 00 00"。
  自动播放光碟
 在HKEY_CLASSES_ROOTAudioCDshell下
 在右边的窗口中修改字符串值:“默认”,改其值为空格。
  直接显示内容
 HKEY_CLASSES_ROOTPaint PictureDefaultIcon
 在右边的窗口中,找到字符串“默认”,修改值1”。
  添加或删除启动时自动运行的程序
 在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion下,把鼠标点
击“RUN”,
 在右边的窗口中,按相应的方法添加或删除启动时自动运行的程序。
预防Acid Battery v10木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices 下 若在右边窗口中如发现了“Explorer”键值,则说明中了YAI木马,将它删除。
  预防YAI木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices
下若在右边窗口中如发现了“Batterieanzeige”键值,则说明中了YAI木马,将它删除 。
  预防Eclipse 2000木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices 下 若在右边窗口中如发现了“bybt”键值,则将它删除。然后在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下删除右边的键值“cksys”,重新启动电脑。
  预防BO2000的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices 下 若在右边窗口中如发现了“umgr32exe”键值,则说明中了BO2000,将它删除。
  预防爱虫的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下 若在右边窗口中如发现了“MSKernel32”键值,就将它删除。
  禁止出现IE菜单中“工具”栏里“interner选项”
 把c:windowssystem下的名为inetcplcpl更名为inetcplold或则别的名字后就会出 现禁止使用的情况 把名字再换回来,就可以恢复使用。
  预防BackDoor的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右边窗口中如发现了“Notepad”键值,就将它删除。
预防WinNuke的破坏
在HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP下 在右边的窗口中新建或修改字符串“BSDUrgent”,设其值为0。
预防KeyboardGhost的破坏
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices
下 如发现KGEXE这一键值,就将它删除,并查找KGexe文件和kgdat文件,将它们都删除
[2楼] Re:[rs6]注册表全面了解,要成为高手必看!
作者:Rs6
查找NetSpy黑客程序
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下, 在右边的窗口中寻找键"NetSpy",如果存在,就说明已经装有NetSpy黑客程序,把它删除

清理访问“网络邻居”后留下的字句信息
在HEKY_CURRENT_USER/Network/Recent下,删除下面的主键。
取消登陆时自动拨号
在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Network/Rea lModeNet下修改右边窗口中的“autologon”1 00 00 00 00”。
取消登录时选择用户
已经删除了所有用户,但登录时还要选择用户,我们要取消登录时选择用户,就要 在HKEY_LOCAL_MACHINENetworkLogon下,在右边的窗口中,修改"UserProfiles"值为 "0"。
隐藏上机用户登录的名字
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下 在右边的窗口中新建字符串"DontDisplayLastUserName",设值为"1"。
使打开IE时候,窗口最大化
在HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain 下在右边的窗口中删除Window_Placement,并且在HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerDesktopOld WorkAreas 下在右边的窗口中删除OldWorkAreaRects 。
禁止使用“重置WEB设置”
在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInternetExplorerControl Panel下在右边的窗口中新建一个DWORD值“Connection Settings”,并设值”。
禁止更改IE的连接设置
在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInternet ExplorerControl Panel下在右边的窗口中新建一个DWORD值“Connection Settings”,并设值”。
禁止更改IE的语言设置
在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInternetExplorerControl Panel下 在右边的窗口中新建一个DWORD值“Languages”,并设值”。
禁止更改IE的辅助功能设置
在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInternetExplorerControl Panel下 在右边的窗口中新建一个DWORD值“Accessibility”,并设值”。
  禁止IE显示“工具”中“INTERNET选项”

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下 在右边的窗口中新建一个二进制值“NoFolderOptions”,并设值1 00 00 00”。

  禁止使用鼠标右键
在HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下 在右边的窗口中新建一个二进制值“NoViewContextMenu”,并设值1 00 00 00”。 修改后需重新启动WINDOWS,启动后,你将不能在桌面,驱动器,文件夹等地方使用鼠标右键
禁止磁盘空间不足时的警告
我们在安装软件的过程中,往往不能预料软件需要使用多大的磁盘空间,当空间不够的时候,就会d出一个空间不足的警告框,使用以下方法就是避免出现这个对话框逐渐展开到HKEY_LOCAL_MACHINESystemCurrentControlSetControlFileSystem下在右边的窗中新建一个二进制值“DisableLowDiskSpaceBroadcast”,并设值癋F FF FF FF”,如果想恢复出现这个警告框,只需删除此键。
禁止显示"远程管理"
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem下 在右边的窗口中新建一个DWORD值“NoAdminPage”,并设值”。
禁止显示“注销”菜单
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下在右边的窗口中新建一个二进制值“NoLogOff”,并设值1 00 00 00”。
禁止显示“开始”菜单中“收藏夹”菜单
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下
在右边的窗口中新建一个值“NoFavoritesMenu”,并设值”。
禁止使用inf文件
在HKEY_LOCAL_MACHINESoftwareCLASSESinf下,在右边的窗口中更改“默认”值皌xtfile”
禁止使用reg文件
在HKEY_LOCAL_MACHINESoftwareCLASSESreg下,在右边的窗口中更改“默认 ”值皌xtfile”
禁用"打印机"中的“删除打印机"
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下,在右边的窗口中新建DWORD值“NoDeletePrinter”,并设其值”。
禁用"打印机"中的"添加打印机"
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesExpl orer下,在右边的窗口中新建DWORD值“NoAddPrinter”,并设其值”。
禁用“网络”控制面板
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionNetworkSystem 下,在右边的窗口中新建DWORD值“NoNetSetup”,并设其值”
禁用“用户”控制面板
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem 下,在右边的窗口中新建DWORD值“NoProfilePage”,并设其值“1”。
禁用“密码”控制面板
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem 下,在右边的窗口中新建DWORD值“NoSecCPL”,并设其值“1”。
禁止修改开始菜单
在HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下 在右边的窗口中创建一个DOWRD值:"NoChangeStartMenu",并将其值设”。
禁止修改“控制面版”
在HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下在右边的窗口中新建一个二进制"NoSetFolders",并将其值设为"01 00 00 00"。
禁止快速启动
在HKEY_LOCAL_MACHINESystemCurrentControlSetControlShutdown下在右边的窗口中修改一个字符串值:“FastReboot”,并将其值设”。
在退出WINDOWS时清除“文档”中的记录
在HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下 在右边的窗口中新建一个二进制"ClearRecentDocson exit",并将其值设为"01 00 00 00"。
不允许按ESC取消登录
在HKEY_LOCAL_MACHINENetworkLogon下在右边的窗口中创建一个DOWRD值:“MustBeValidated”,并将其值设”,并且在在“网络”属性里设置Windows友好登录”。
禁止使用注册表编辑文件regeditexeHKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem 在右边的窗口中创建一个DOWRD值:"DisableRegistryTools",并将其值设”。
恢复使用注册表编辑文件regeditexe
当我们禁止使用注册表文件后,想恢复不是一件难事,下载这个文件,运行把注册表信息添加到注册表,重新启动后即可使用注册表编辑器regeditexe
禁止更改控制面板和打印机
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer在右边的窗口中创建一个DOWRD值:“NoSetFolders”,并将其值设”。
禁止修改显示属性 HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion
PoliciesSystem 在右边的窗口中创建一个DOWRD值:“NoDispCPL”,并将其值设”
隐藏我的电脑中的驱动器
隐藏所有驱动器:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边的窗口中创建一个DWORD值:“NoDrives”,并将其值设“00000000”;
隐藏C盘:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边的窗口中创建一个DWORD值:“NoDrives”,并将其值设为“04000000”;
隐藏D盘:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边的窗口中创建一个DWORD值:“NoDrives”,并将其值设为“08000000”;
隐藏E盘 :
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边的窗口中创建一个DWORD值:“NoDrives”,并将其值设为:“1600000”。
隐藏A盘 :
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边的窗口中创建一个DWORD值:“NoDrives”,并将其设“01000000”。
退出不保存设置
HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 把二进制值“NoSaveSettings”改1 00 00 00”。
禁用MS—DOS方式
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在该分支下新建主键“WinOlaApp",然后点击该主键,在右边的窗口中创建一个DWORD值“Disabled",并设其值”。
禁止“重新启动计算机切换到MS-DOS方式”
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边的窗口中创建一个DWORD值“NoRealMode”,并设其值”。
在“我的电脑”中显示“计划任务”
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionexplorerMyComputerNameSpace 在该分支下创建一个主键“{D6277990-4C6A-11CF-8D87-00AA0060F5BF}” ,在右边的窗口中创建字符串“默认”,设值癝cheduled Tasks”。
在“我的电脑”中显示“拨号网络” HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentV
ersionexplorerMyComputerNameSpace在此分支下新建一个主键“{992CFFA0-F557 -101A-88EC-00DD010CCC48}”,单击此主键,在右边的窗口中创建一个字符串值:“默认”,并设值为"拨号网络"。
在我的电脑中显示“打印机” HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionexplorerMyComputerNameSpace在此分支下新建一个主键“{2227A280-3AEA-1069-A2DE-08002B30309D}”,单击此主键,在右边的窗口中创建一个字符串值:“默认”,并设值按蛴』�薄
禁止PC在出错时发出声音
HKEY_CURRENT_USERControl PanelSound在右边的窗口中,把字符
串“Beep”的值改癗o”。
禁止CD-ROM自动运行
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCDRom在右边的窗口中,把DWORD值“Autorun”改”。“1”表示自动运行。
禁止改变打印机设置 HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边窗口中创建DWORD值:“NoPrinters”,并设值”。
禁止出现“点击这里开始”的提示
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer 在右边的窗口中新建一个二进制值:“NoStartBanner”,设值1 00 00 00”。
在桌面上显示WINDOWS版本标志
HKEY_USERSDEFAULTControl Paneldesktop在右边的窗口中新建一个字符串值:“PaintDesktopVersion”,并设其值”。
禁止在桌面上显示图标
我们安装了许多软件后,往往会在系统的桌面上出现许多图标,点
击这些图标可以启动相应的软件,过多的图标使桌面变得花花绿绿,想恢复原来清 洁的桌面,又不想删除这些图标,就可以使用 一下的方法,把桌面上的所有图标都隐 藏起来。在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPo
liciesExplorer下在右边的窗口中新建一个DWORD值:“NoDestop”,并设其值”
禁止显示提示
当我们把鼠标指向“我的电脑”,“我的文件夹”,“回收站”等图标时往往会出现一些提示信息,这些信息对一个熟悉WINDOWS的 *** 作者来讲,是不必要的,我们想禁止显示这些提示,可使用下面的方法。
在HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced下在右边的窗口中修改DWORD值“ShowInfoTip”,设其值”。
禁止使用任务栏
在HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下 在右边的窗口中新建一个DWORD值:“NoSetTaskBar”,并设其值”。 此条技巧的作用是当我们在系统的任务栏上点击鼠标右键,再选择“属性”时,将会出现以下的提示信息:“本次 *** 作由于这台计算机的限制而被取消。请与你的系统管理员联系”。 高彩色显示图标
当我们按照完windows后,windows的图标都是用位数较小的色彩来显示图标的,使用下面的方法可以用16位色显示图标,运行注册表编辑器,依次展开到HKEY_CURRENT_USERCon
trol PanelDesktopWindowMetrics 在右边的窗口中找到字符串值:“Shell Icon B
PP”,并设其值6”。 改变图标大小 HKEY_CURRENT_USERControl PanelDeskt
opWindowMetrics 在右边的窗口中找到字符串值:“Shell Icon Size”,改变其值即
改变图标大小,缺省值2”。 进入WINDOWS98时显示欢迎提示 HKEY_LOCAL_MACHI
NESoftwareMicrosoftWindowsCurrentVersionRun 在右边的窗谥行陆ㄒ桓鲎址�
�担骸痒elcome”,设值痒elcomeexe /R”。 以12小时制显示时间 HKEY_USERS
DEFAULTControl PanelInternational 在右边的窗口中找到字符串值:“sTimeFo
rmat”,改其值癶:mm tt”。 隐藏快捷方式的小箭头 HKEY_LOCAL_MACHINESOFT
WAREMicrosoftWindowsCurrentVersionExplorerShell Icons 在右边的窗口中新
建字符串值:“29”,设置其值为:“%WINDIR%SYSTEMdocpropdll,1”。 把快捷方式的
小箭头更改为其它图标 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentV
ersionexplorerShell Icons ⌒陆ɑ蛐薷淖址�quot;29",设置其值为你的图标路径。
为快捷方式的图标加上小箭头
去掉了小箭头,怎么办,别急,按以下办法可以做
上 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionexplorerSh
ell Icons 在右边窗口中删除字符串"29"。 禁止名称有“快捷方式”四个字
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer 在右
边的窗口中新建一个二进制值“link”,并设其值0 00 00 00”。 使用三键鼠标
在HKEY_LOCAL_MACHINESOFTWARELogitechouseWareCurrentVersion SerialV 000下
, 改为DoubleClick to 001。 更改WINDOWS系统的产品名 在HKEY_LOCAL_
MACHINESoftwareMicrosoftWindowsCurrentVersion下 在右边的窗口中找到字符串
值“ProductName”,更改键值即可。打开系统属性看看效果 更改WINDOWS系统的用户名
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion下 在右
边的窗口中找到字符串值“RegisteredOwner”,更改键值即可。打开系统属性看看效果。
禁止显示IE的地址栏
在HKEY_CLASSES_ROOTCLSID{01E04581-4EEE-11d0-BFE9-00AA
005B4383}InProcServer32下 在右边的窗口中修改字符串“默认”的值皉em C:WIN DOWSSYSTEMBROWSEUIDLL”。

禁止使用IE“internet选项”中的高级项(winnt适用)
在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInternet ExplorerControl Pan
el下 在右边的窗口中新建一个DWORD值“AdvancedTab”,并设值”。

禁止更改 IE默认的检查(winnt适用)
在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftI
nternet ExplorerControl Panel下 在右边的窗口中新建一个DWORD值“ProgramsTab ”,并设值”。

允许DHCP(winnt适用)
在HKEY_LOCAL_MACHINESYSTEMCurrent
ControlSetServices{Adapter}ParametersTcpip下 在右边的窗口中新建一个DWOR
D值“EnableDHCP”,并设值”。

局域网自动断开的时间(winnt适用)
在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters下 在 右边的窗口中新建一个DWORD值“Autodisconnect”,并设值为你想要设置的分钟数。
禁 止使用“重置WEB设置”
在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInter
net ExplorerControl Panel下 在右边的窗口中新建一个DWORD值“Connection Sett ings”,并设值”。
禁止更改IE的连接设置
在HKEY_CURRENT_USERSoftwareP
oliciesMicrosoftInternet ExplorerControl Panel下在右边的窗口中新建一个D WOR

先点击右键点属性,启动方式选自动,然后
(1)删除 C:\WINDOWS\system32\spool\PRINTERS 目录下的所有文件。
(2)删除注册表 \HKEY_LOCAL_MACHINE\SYSTEM\ControlSetoo1\Control\Print\Printers
目录下的所有打印机。
(3)重启电脑。
(4)重新添加所需要的打印机。
OR
分析解决打印服务自动关闭及citrix打印补丁
尝试访问 Windows 2000 打印服务器上的打印机时,Print Spooler 服务可能会频繁停止,并且可能收到 Dr Watson 错误信息
重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 ( >这种情况是由于网络问题导致的,打印机也是需要网络相关服务才可以实现共享,网络打印的,有些服务也会由于网络问题无法打开。
1、打开开始菜单,然后在运行中输入:CMD 点击确定(或按回车键)把命令提示符窗口打开。
2、在命令提示符中输入:netsh winsock reset (按回车键执行命令)。
3、稍后就会有成功的提示:成功地重置Winsock目录重启计算机完成重置。
重置后看看打印机服务是否可以正常开启。

什么是注册表?
注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘。不幸的是,微软并没有完全公开讲述关于注册表正确设置的支持信息,这样使得注册表看上去更不可琢磨。处理和编辑注册表如同“黑色艺术”一样,它在系统中的设置让用户感觉象在黑暗中摸索一样找不到感觉。这样,因为用户对这方面的缺乏了解使得注册表更多的出现故障。
Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件systemdat和userdat里,还有它们的备份systemda0和userda0。通过Windows目录下的regeditexe程序可以存取注册表数据库。在以前,在windows的更早版本(在win95以前),这些功能是靠winini,systemini和其他和应用程序有关联的ini文件来实现的
在windows *** 作系统家族中,systemini和winini这两个文件包含了 *** 作系统所有的控制功能和应用程序的信息,systemini管理计算机硬件而winini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在ini文件中,任何新程序都会被记录在ini文件中。这些记录会在程序代码中被引用。因为受winini和systemini文件大小的限制,程序员添加辅助的INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个excelini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在systemini和winini中只需要指出excelini的路径和文件名即可。
最开始,systemini和winini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在ini文件中添加更多的参数项。这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改ini文件。然而,没有一个人在删除应用程序后删除ini文件中的相关设置,所以systemini和winini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的ini文件,然后指向特定的ini文件如winini和systemini文件。这样下来多个ini文件影响了系统正常的存取级别设置。如果一个应用程序的ini文件和WININI文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位 *** 作系统和应用程序包括了所有功能下的东东注册表是一套控制 *** 作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。
注册表都做些什么?
注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用systemini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考winini和systemini文件获得信息和控制。
在没有注册表的情况下, *** 作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据库。当 *** 作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于 *** 作系统的,但是 *** 作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信息给 *** 作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。
注册表控制用户模式的例子有:
控制面板功能;
桌面外观和图标;
网络参数;
浏览器功能性和特征;
那些功能中的某些是和用户无关的,有些是针对用户的。
计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。
这里是在注册表中基与计算机控制条目的一些例子:
存取控制;
登陆确认;
文件和打印机共享;
网卡设置和协议;
系统性能和虚拟内存设置;
没有了注册表,Win95和Winnt 就不太可能存在。它们实在太复杂了,以致于用过去的ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。
在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Winnt和Win95系统管理基本常识。
二、注册表的结构
注册表的结构
注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。
计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSERDAT。
Win95中所有系统注册信息保存在windows目录下的SYSTEMDAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。
Win95用户的注册数据一般被保存在windows目录下的userdat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\WINDOWS\Profiles\username\USERDAT下它自己的userdat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USERDAT信息)将被装入,以用来保持你自己的桌面和图标。
控制键
在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是六个控制键
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注册表并不兼容。从Win95向Winnt升级需要你重新安装32位应用程序,重新在桌面上创建图标,并重新建立用户环境。
通过控制键可以比较容易编辑注册表。虽然它们显示和编辑好象独立的键,其实HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有内容。每次计算机启动时,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。
HKEY_CLASSES_ROOT其实就是HKEY_LOCAL_MACHINE\SOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理。
HKEY_USERS保存着缺省用户信息和当前登陆用户信息。当一个域成员计算机启动并且一个用户登陆,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。
键和子键
数据被分割成多层次的键和子键,建立分层次(就象Exploer一样)结构更易于编辑。每个键有成组的信息而且根据在其中的数据类型被命名。每个键在它的文件夹图标上都有一个加号(+)标志子键说明在它下面还有更多内容的东西。当点开它的时候,文件夹的加号标志被替换成一个减号(-)标志,然后显示出下一级的子键。
所有软件,硬件,windows工作的设置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用户权限和共享信息也包括在这个键中。用户权限,安全策略,共享信息可以通过Windows NT域用户管理器,Explorer和Win95中控制面板来设置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的信息:
在文件和应用程序之间所有的扩展名和关联;
所有的驱动程序名称;
类的ID数字(所要存取项的名字用数字来代替);
DDE和OLE的信息;
用于应用程序和文件的图标;
HKEY_CURRENT_CONFIG
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中当前硬件配置信息的映射。如果系统只有一个配置文件,也就是原始配置,数据将一直在同样的地方。在控制面板|系统|硬件配置文件|创建一个额外的配置使额外配置信息放入HKEY_LOCAL_MACHINE。当Win95中存在多个配置文件时,当每次计算机启动时将给出一个提示让你选择一个配置文件。在Winnt中,在启动时你可以按空格键来选择上次正常启动时硬件配置文件。根据硬件配置文件选择的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注册表控制键不同,因为实际上它并不被写入硬盘驱动器中。Win95的一个优点是,在系统启动时HKEY_DYN_DATA这个控制键储存收集到的即插即用信息并配置它们。它保存在内存中,Win95用它来控制硬件。因为是在内存中,所以它不从硬盘中读取,每次当你启动计算机时,配置都有可能会不一样。在启动时Win95必须计算超过1600种可能的配置。所以,如果系统改变既定的设置而没有报告给Win95那么潜在的问题就可能发生。系统大多数时间工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS仅包含了缺省用户设置和登陆用户的信息。虽然它包含了所有独立用户的设置,但在用户未登陆网络时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。
HKEY_CURRENT_USER
用来保存当前用户和缺省用户的信息,HKEY_CURRENT_USER仅映射当前登陆用户的信息。
各主键的简单介绍
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处理键。HKLM键保存着计算机的系统信息。它包括网络和硬件上所有的软件设置。(比如文件的位置,注册和未注册的状态,版本号等等)这些设置和用户无关,因为这些设置是针对使用这个系统的所有用户的。
HKEY_LOCAL_MACHINE\AppEvents
为了以后在瘦客户机上运行客户机/服务器这样的应用程序,在Win95/98中AppEvents键是空的。应用程序实际上都驻留网络服务器上,这些键会保存部分指针。
HKEY_LOCAL_MACHINE\Config
这个键保存着你计算机上所有不同的硬件设置(这些从控制面板的系统属性中硬件配置文件中可以创建)。这些配置在启动时通常被复制到HKCC。每个配置会被用一个键(比如0001或者0002等等)来保存,每个都是一个独立的配置。如果你只有一个单一的配置,那就只会有0001这个键
HKEY_LOCAL_MACHINE\Config\0001\Display
这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置和分辨率等
一个小技巧:当设置了计算机不支持的大分辨率导致Windows不能启动时(黑屏),可以修改分辨率来解决。进入安全模式,运行regeditexe,在这个键的Resolution键值中把数据值修改为640,480或者800,600这样的低分辨率,然后重新启动计算机即可。
HKEY_LOCAL_MACHINE\Config\0001\System
这个键保存着系统里打印机的信息
HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers
在这个键下面,有一个键是为系统上每一个打印机设置的,通过控制面板添加和删除打印机会调整这个列表
HKEY_LOCAL_MACHINE\Enum
Enum键包含启动时发现的硬件设备和那些既插即用卡的信息。Win95使用总线列举在启动时通过不同的ini文件来检测硬件信息。那些在启动时被安装的和被检测到的硬件会显示在这里。子键包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子键名表示它们各自的硬件设备信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS键保存着系统中所有即插即用设备的信息。它们用一套代码数列出,包括每一个键的详细说明,举例,pnp0400是并行口LPT1的键。如果LPT1并不具备即插即用功能,它就会别列入到Enum下的Root键中
HKEY_LOCAL_MACHINE\Enum\Root
Root键包括所有非即插即用设备的信息。在这里,我们可以迅速断定哪些设备是即插即用,那些不是。比如SCSI适配器,这个设备必须符合Win95中一个键名为ForcedConfig的硬件设置,这个不会改变。
HKEY_LOCAL_MACHINE\Enum\Network
win95的网络功能在这个键有详细说明,子键包括了每个已经安装的主要的服务和协议。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子键包括了两个多层的子键:DESCRIPTION键,它包含了中央处理器和一个浮点处理器的信息。还有一个设备映射键,它下面的串行键列出你所有的com端口。这个hardware键仅保存超级终端程序的信息,及数学处理器和串行口。
HKEY_LOCAL_MACHINE\Network
这个键仅保存网络登陆信息。所有网络服务细节都保存在HKEY_LOCAL_MACHINE\Enum\Network这个键中。这个键有一个子键,logon,包括了lmlogon(本地机器登陆?0=false 1=true)的值,logonvalidated(必须登陆验证),策略处理,主登陆方式(Windows登陆 ,微软网络客户方式等),用户名和用户配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有两个子键,第一个是存取(它最终致使一个远程键列出网络安全资源,存取权限等)和提供(包括列出网络地址和地址服务器),这个键被保留用在以后使用高级安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
这个键列出了所有已安装的32位软件和程序的ini文件。它包括了变化,依靠软件安装。那些程序的控制功能在这里的子键中列出。多数子键简单的列出了安装软件的版本号。
我们在\Microsoft\Windows\Current Version下发现了一些有意思的设置,它有如下子键:
1App paths: 你曾经安装过的所有32位软件的位置。
2Applets, Compression, Controls Folder : 包括下控制面板象显示属性那样属性条的附件。
3Detect, explorer :很多有意思的子键如Namespace keys of Desktop和My Computer----它们指出了回收站和拨号网络的CLSID行----和提示子键可以让你建立自己的提示。
4Extensions : 一个扩展联系的列表,当前相关联的扩展名和比特定的执行文件更适合的目标类型。
5Fonts, fontsize, FS Templates :系统属性条中所选择文件系统模板, 服务器,桌面计算机或者笔记本电脑信息。
6MS-DOS Emulation :包括一个应用程序兼容子键 为大量过时的程序二进制键所设。
7MS-DOS Options :在dos模式下的设置,如himemsys,cd-roms等。
8Network :网络驱动的配置。
9Nls, Policies :系统管理员认为你不应该去做的事。
10ProfileList :所有可以登陆你计算机的用户名列表。
11在Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹中。它们在HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\下的子键中被执行。
Run : 程序在启动时运行
RunOnce : windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之后需要重新启动系统的时候,所以这个键一般都是空的。
RunServices : 它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce : 它只运行一次,但是是“系统自身”的安装(大量的windows安装参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去掉它)。
12SharedDLLs:共享DLL的列表,每一个都给出了在一个不可知系统的一个数字等级。
13Shell Extensions:列出了“被认可的”OLE注册条,和相应的CLSID连接。
14ShellScrap :这个包含了一个PriorityCacheformats的子键,它包括了一个空的有限值,它更象过去SmartDrive命令行参数的派生。
15Time Zones : 主键值是你现在的时区;子键定义了所以可能的时区。
16Uninstall:这个保存了程序在添加/删除程序对话框的显示;子键包含了指向反安装程序的路径。和安装向导相似)winlogon(包含了合法登陆布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
这个子键包括设备驱动和其他服务的描述和控制。不同于windows nt,win95只包括限制驱动的控制设置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
这个子键包括了win95控制面板中的信息。不要编辑这些信息,因为一些小程序的改变在很多地方,一个丢失的项会使这个系统变的不稳定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
这个键包括了所有win95的标准服务。所有被添加的服务和设备,每个标准的服务键包括了它的设置和辨认设置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Arbitrators
atbitrators键包括了当两个设备共同占用同样的设置需要解决的信息。四个子键包括了内存地址,冲突,DMA,I/O端口冲突和IRQ冲突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class
class键包括了所有win95支持的设备classes控制,这些和你在添加新硬件出现的硬件组很类似,还包括了这些设备如何安装的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\inetaccs
这个键包括了关于这个系统变化的ie附件的可用性,它仅在你安装过ie2。0或者更高版本才出现。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSNP32
msnp32描述了客户机如何在microsoft网络中实现功能,它包括了认证过程和认证者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNP32
nenp32键描述了windows客户如何在netware网络中工作功能,它包括了关于认证过程和证明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess
在这个键里包括需要远程工作在win95系统上的信息,有认证参数,主机信息,和为了建立一个拨号连接工作的协议信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP
这个键包括了所以snmp(简单网络管理协议)的参数。它包括了允许的管理,配置陷阱,和有效的团体。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD
vxd键包括了win95中所有32位虚拟设备驱动信息,win95自动管理它们,所以不必要用注册表编辑器编辑它们,所以的静态vxds用子键列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost
webpost键包括了所有装载的internet邮局的设置,如果你连接一个isp,并且它列出载这里,你应该给自己选则一个服务器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
这个键列出了当连接到internet上winnsock文件的信息,如果列出了不正确的文件,你将不会连接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
wintrust功能是检查从Internet上下载来的文件是否有病毒,它可以确保你得到干净安全的文件。
HKEY_CLASSES_ROOT
在注册表中HKEY_CLASSES_ROOT是系统中控制所有数据文件的项。这个在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制键包括了所有文件扩展和所有和执行文件相关的文件。它同样也决定了当一个文件被双击时起反应的相关应用程序。
HKEY_CLASSES_ROOT被用作程序员在安装软件时方便的发送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序员在运行他们的启动程序时不需要担忧实际的位置,相反的,他们只需要在HKEY_CLASSES_ROOT中加入数据就可以了。
在Windows用户图形界面下,每件事----每个文件,每个目录,每个小程序,每个连接,每个驱动---都被看做一个对象;每个对象都有确定的属性和它联系。HKCR包含着对象类型和它们属性的列表。HKCR主要的功能被设置为:
一个对象类型和一个文件扩展名关联
一个对象类型和一种图标关联
一个对象类型和一个命令行动作的关联
定义对象类型相关菜单选项和定义每一个对象类型属性选项
在Win95中,相关菜单就是当你鼠标右击一个对象时所d出的菜单;属性就是当你选择属性项后一个展开的对话框。用简单术语来说就是在改变HKCR中的设置可以改变一个给定文件扩展名缺省的关联。改变一个文件类型的缺省图标,和添加或者删除给定对象类型的d出菜单内容(或者所有的对象类型)
HKCR包括了三种基本类型的子键
\ 或者文件扩展名子键
文件扩展名子键在d出菜单上连接文件扩展名到对象类型和相关 *** 作,属性项,和相关 *** 作。
\object 类型子键
对象类型子键定义了一个对象类型在它缺省图标的项,它的d出菜单和属性项,它的相关 *** 作和它的CLSID连接。
\CLSID 子键
在Windows下每件事都被用一个数字取代它的名字来对待。就象人往往是用名字来处理事情一样。CLSID是标识所有列出的图标,应用程序,目录,文件类型等等对象的数字。是微软为制造商分配的,每一个都必须是唯一的。制造商将CLSID放入安装程序文件这样就可以在安装时更新注册表。
注册表是应用程序进行时它们需要关于做什么的指示的数据库。比如说,假定你有一个微软Excel 7电子数据表的Word 7文档,当你在Word中双击这个电子数据表,应用程序菜单就会变成Excel的菜单而且电子数据表进入编辑状态,就好象你在Excel中一样。它是如何知道该做什么呢?每个Excel 7创建的文件都有Excel的CLSID连接。Word读这个CLSID后,到注册表中寻找指示,依赖CLSID下的数据运行DLL文件或者应用程序。
CLSID子键为对象类型提供了OLE和DDE信息和图标。相关菜单,或者包含在它子键中的属性项信息。这个可能是多数让人看到后觉得“恐怖”的键。每个CLSID数必须是唯一的,实际上,为了这个目的微软已经出产了CLSID-产生程序--这个结果导致你往往得到32位16进制的数字串,除非你是程序员,否则多数部分键看起来是很枯燥的。它们包括内存管理模式,客户机/服务器配置,和OLE处理的dll连接。
关于子键的一点注解
1)shell:Shell键有个一”action“子键,如同”open“一样,这里有一个command子键;command子键有一个缺省句值,它包含了运行程序的命令行。将一个”open“子键放在一个对象类型的shell子键中会在这个对象类型的d出菜单上多出一个”open“选项,给这个open子键一个command(缺省命令行"C:\Windows \Notepadexe %1")子键会使得打开这个对象类型时使用笔记本做为缺省应用程序。其他 *** 作选项包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex键有一个子键。它们包含的每一个子键指向一个为对象类型执行OLE和DDE功能的CLSID项(比如说快速查看,一个菜单处理子键下指向一个有句值的CLSID键列出了包含了文件浏览功能的dll文件)
3)shellnew:ShellNew包含了一个“command”句,它包含了一个打开对象类型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子键包含了一个“default”句,/div>

什么是注册表?
注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘。不幸的是,微软并没有完全公开讲述关于注册表正确设置的支持信息,这样使得注册表看上去更不可琢磨。处理和编辑注册表如同“黑色艺术”一样,它在系统中的设置让用户感觉象在黑暗中摸索一样找不到感觉。这样,因为用户对这方面的缺乏了解使得注册表更多的出现故障。
Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件systemdat和userdat里,还有它们的备份systemda0和userda0。通过Windows目录下的regeditexe程序可以存取注册表数据库。在以前,在windows的更早版本(在win95以前),这些功能是靠winini,systemini和其他和应用程序有关联的ini文件来实现的
在windows *** 作系统家族中,systemini和winini这两个文件包含了 *** 作系统所有的控制功能和应用程序的信息,systemini管理计算机硬件而winini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在ini文件中,任何新程序都会被记录在ini文件中。这些记录会在程序代码中被引用。因为受winini和systemini文件大小的限制,程序员添加辅助的INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个excelini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在systemini和winini中只需要指出excelini的路径和文件名即可。
最开始,systemini和winini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在ini文件中添加更多的参数项。这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改ini文件。然而,没有一个人在删除应用程序后删除ini文件中的相关设置,所以systemini和winini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的ini文件,然后指向特定的ini文件如winini和systemini文件。这样下来多个ini文件影响了系统正常的存取级别设置。如果一个应用程序的ini文件和WININI文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位 *** 作系统和应用程序包括了所有功能下的东东注册表是一套控制 *** 作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。
注册表都做些什么?
注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用systemini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考winini和systemini文件获得信息和控制。
在没有注册表的情况下, *** 作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据库。当 *** 作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于 *** 作系统的,但是 *** 作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信息给 *** 作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。
注册表控制用户模式的例子有:
控制面板功能;
桌面外观和图标;
网络参数;
浏览器功能性和特征;
那些功能中的某些是和用户无关的,有些是针对用户的。
计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。
这里是在注册表中基与计算机控制条目的一些例子:
存取控制;
登陆确认;
文件和打印机共享;
网卡设置和协议;
系统性能和虚拟内存设置;
没有了注册表,Win95和Winnt 就不太可能存在。它们实在太复杂了,以致于用过去的ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。
在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Winnt和Win95系统管理基本常识。
二、注册表的结构
注册表的结构
注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。
计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSERDAT。
Win95中所有系统注册信息保存在windows目录下的SYSTEMDAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。
Win95用户的注册数据一般被保存在windows目录下的userdat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\WINDOWS\Profiles\username\USERDAT下它自己的userdat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USERDAT信息)将被装入,以用来保持你自己的桌面和图标。
控制键
在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是六个控制键
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注册表并不兼容。从Win95向Winnt升级需要你重新安装32位应用程序,重新在桌面上创建图标,并重新建立用户环境。
通过控制键可以比较容易编辑注册表。虽然它们显示和编辑好象独立的键,其实HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有内容。每次计算机启动时,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。
HKEY_CLASSES_ROOT其实就是HKEY_LOCAL_MACHINE\SOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理。
HKEY_USERS保存着缺省用户信息和当前登陆用户信息。当一个域成员计算机启动并且一个用户登陆,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。
键和子键
数据被分割成多层次的键和子键,建立分层次(就象Exploer一样)结构更易于编辑。每个键有成组的信息而且根据在其中的数据类型被命名。每个键在它的文件夹图标上都有一个加号(+)标志子键说明在它下面还有更多内容的东西。当点开它的时候,文件夹的加号标志被替换成一个减号(-)标志,然后显示出下一级的子键。
所有软件,硬件,windows工作的设置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用户权限和共享信息也包括在这个键中。用户权限,安全策略,共享信息可以通过Windows NT域用户管理器,Explorer和Win95中控制面板来设置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的信息:
在文件和应用程序之间所有的扩展名和关联;
所有的驱动程序名称;
类的ID数字(所要存取项的名字用数字来代替);
DDE和OLE的信息;
用于应用程序和文件的图标;
HKEY_CURRENT_CONFIG
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中当前硬件配置信息的映射。如果系统只有一个配置文件,也就是原始配置,数据将一直在同样的地方。在控制面板|系统|硬件配置文件|创建一个额外的配置使额外配置信息放入HKEY_LOCAL_MACHINE。当Win95中存在多个配置文件时,当每次计算机启动时将给出一个提示让你选择一个配置文件。在Winnt中,在启动时你可以按空格键来选择上次正常启动时硬件配置文件。根据硬件配置文件选择的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注册表控制键不同,因为实际上它并不被写入硬盘驱动器中。Win95的一个优点是,在系统启动时HKEY_DYN_DATA这个控制键储存收集到的即插即用信息并配置它们。它保存在内存中,Win95用它来控制硬件。因为是在内存中,所以它不从硬盘中读取,每次当你启动计算机时,配置都有可能会不一样。在启动时Win95必须计算超过1600种可能的配置。所以,如果系统改变既定的设置而没有报告给Win95那么潜在的问题就可能发生。系统大多数时间工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS仅包含了缺省用户设置和登陆用户的信息。虽然它包含了所有独立用户的设置,但在用户未登陆网络时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。
HKEY_CURRENT_USER
用来保存当前用户和缺省用户的信息,HKEY_CURRENT_USER仅映射当前登陆用户的信息。
各主键的简单介绍
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处理键。HKLM键保存着计算机的系统信息。它包括网络和硬件上所有的软件设置。(比如文件的位置,注册和未注册的状态,版本号等等)这些设置和用户无关,因为这些设置是针对使用这个系统的所有用户的。
HKEY_LOCAL_MACHINE\AppEvents
为了以后在瘦客户机上运行客户机/服务器这样的应用程序,在Win95/98中AppEvents键是空的。应用程序实际上都驻留网络服务器上,这些键会保存部分指针。
HKEY_LOCAL_MACHINE\Config
这个键保存着你计算机上所有不同的硬件设置(这些从控制面板的系统属性中硬件配置文件中可以创建)。这些配置在启动时通常被复制到HKCC。每个配置会被用一个键(比如0001或者0002等等)来保存,每个都是一个独立的配置。如果你只有一个单一的配置,那就只会有0001这个键
HKEY_LOCAL_MACHINE\Config\0001\Display
这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置和分辨率等
一个小技巧:当设置了计算机不支持的大分辨率导致Windows不能启动时(黑屏),可以修改分辨率来解决。进入安全模式,运行regeditexe,在这个键的Resolution键值中把数据值修改为640,480或者800,600这样的低分辨率,然后重新启动计算机即可。
HKEY_LOCAL_MACHINE\Config\0001\System
这个键保存着系统里打印机的信息
HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers
在这个键下面,有一个键是为系统上每一个打印机设置的,通过控制面板添加和删除打印机会调整这个列表
HKEY_LOCAL_MACHINE\Enum
Enum键包含启动时发现的硬件设备和那些既插即用卡的信息。Win95使用总线列举在启动时通过不同的ini文件来检测硬件信息。那些在启动时被安装的和被检测到的硬件会显示在这里。子键包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子键名表示它们各自的硬件设备信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS键保存着系统中所有即插即用设备的信息。它们用一套代码数列出,包括每一个键的详细说明,举例,pnp0400是并行口LPT1的键。如果LPT1并不具备即插即用功能,它就会别列入到Enum下的Root键中
HKEY_LOCAL_MACHINE\Enum\Root
Root键包括所有非即插即用设备的信息。在这里,我们可以迅速断定哪些设备是即插即用,那些不是。比如SCSI适配器,这个设备必须符合Win95中一个键名为ForcedConfig的硬件设置,这个不会改变。
HKEY_LOCAL_MACHINE\Enum\Network
win95的网络功能在这个键有详细说明,子键包括了每个已经安装的主要的服务和协议。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子键包括了两个多层的子键:DESCRIPTION键,它包含了中央处理器和一个浮点处理器的信息。还有一个设备映射键,它下面的串行键列出你所有的com端口。这个hardware键仅保存超级终端程序的信息,及数学处理器和串行口。
HKEY_LOCAL_MACHINE\Network
这个键仅保存网络登陆信息。所有网络服务细节都保存在HKEY_LOCAL_MACHINE\Enum\Network这个键中。这个键有一个子键,logon,包括了lmlogon(本地机器登陆?0=false 1=true)的值,logonvalidated(必须登陆验证),策略处理,主登陆方式(Windows登陆 ,微软网络客户方式等),用户名和用户配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有两个子键,第一个是存取(它最终致使一个远程键列出网络安全资源,存取权限等)和提供(包括列出网络地址和地址服务器),这个键被保留用在以后使用高级安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
这个键列出了所有已安装的32位软件和程序的ini文件。它包括了变化,依靠软件安装。那些程序的控制功能在这里的子键中列出。多数子键简单的列出了安装软件的版本号。
我们在\Microsoft\Windows\Current Version下发现了一些有意思的设置,它有如下子键:
1App paths: 你曾经安装过的所有32位软件的位置。
2Applets, Compression, Controls Folder : 包括下控制面板象显示属性那样属性条的附件。
3Detect, explorer :很多有意思的子键如Namespace keys of Desktop和My Computer----它们指出了回收站和拨号网络的CLSID行----和提示子键可以让你建立自己的提示。
4Extensions : 一个扩展联系的列表,当前相关联的扩展名和比特定的执行文件更适合的目标类型。
5Fonts, fontsize, FS Templates :系统属性条中所选择文件系统模板, 服务器,桌面计算机或者笔记本电脑信息。
6MS-DOS Emulation :包括一个应用程序兼容子键 为大量过时的程序二进制键所设。
7MS-DOS Options :在dos模式下的设置,如himemsys,cd-roms等。
8Network :网络驱动的配置。
9Nls, Policies :系统管理员认为你不应该去做的事。
10ProfileList :所有可以登陆你计算机的用户名列表。
11在Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹中。它们在HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\下的子键中被执行。
Run : 程序在启动时运行
RunOnce : windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之后需要重新启动系统的时候,所以这个键一般都是空的。
RunServices : 它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce : 它只运行一次,但是是“系统自身”的安装(大量的windows安装参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去掉它)。
12SharedDLLs:共享DLL的列表,每一个都给出了在一个不可知系统的一个数字等级。
13Shell Extensions:列出了“被认可的”OLE注册条,和相应的CLSID连接。
14ShellScrap :这个包含了一个PriorityCacheformats的子键,它包括了一个空的有限值,它更象过去SmartDrive命令行参数的派生。
15Time Zones : 主键值是你现在的时区;子键定义了所以可能的时区。
16Uninstall:这个保存了程序在添加/删除程序对话框的显示;子键包含了指向反安装程序的路径。和安装向导相似)winlogon(包含了合法登陆布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
这个子键包括设备驱动和其他服务的描述和控制。不同于windows nt,win95只包括限制驱动的控制设置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
这个子键包括了win95控制面板中的信息。不要编辑这些信息,因为一些小程序的改变在很多地方,一个丢失的项会使这个系统变的不稳定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
这个键包括了所有win95的标准服务。所有被添加的服务和设备,每个标准的服务键包括了它的设置和辨认设置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Arbitrators
atbitrators键包括了当两个设备共同占用同样的设置需要解决的信息。四个子键包括了内存地址,冲突,DMA,I/O端口冲突和IRQ冲突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class
class键包括了所有win95支持的设备classes控制,这些和你在添加新硬件出现的硬件组很类似,还包括了这些设备如何安装的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\inetaccs
这个键包括了关于这个系统变化的ie附件的可用性,它仅在你安装过ie2。0或者更高版本才出现。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSNP32
msnp32描述了客户机如何在microsoft网络中实现功能,它包括了认证过程和认证者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNP32
nenp32键描述了windows客户如何在netware网络中工作功能,它包括了关于认证过程和证明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess
在这个键里包括需要远程工作在win95系统上的信息,有认证参数,主机信息,和为了建立一个拨号连接工作的协议信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP
这个键包括了所以snmp(简单网络管理协议)的参数。它包括了允许的管理,配置陷阱,和有效的团体。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD
vxd键包括了win95中所有32位虚拟设备驱动信息,win95自动管理它们,所以不必要用注册表编辑器编辑它们,所以的静态vxds用子键列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost
webpost键包括了所有装载的internet邮局的设置,如果你连接一个isp,并且它列出载这里,你应该给自己选则一个服务器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
这个键列出了当连接到internet上winnsock文件的信息,如果列出了不正确的文件,你将不会连接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
wintrust功能是检查从Internet上下载来的文件是否有病毒,它可以确保你得到干净安全的文件。
HKEY_CLASSES_ROOT
在注册表中HKEY_CLASSES_ROOT是系统中控制所有数据文件的项。这个在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制键包括了所有文件扩展和所有和执行文件相关的文件。它同样也决定了当一个文件被双击时起反应的相关应用程序。
HKEY_CLASSES_ROOT被用作程序员在安装软件时方便的发送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序员在运行他们的启动程序时不需要担忧实际的位置,相反的,他们只需要在HKEY_CLASSES_ROOT中加入数据就可以了。
在Windows用户图形界面下,每件事----每个文件,每个目录,每个小程序,每个连接,每个驱动---都被看做一个对象;每个对象都有确定的属性和它联系。HKCR包含着对象类型和它们属性的列表。HKCR主要的功能被设置为:
一个对象类型和一个文件扩展名关联
一个对象类型和一种图标关联
一个对象类型和一个命令行动作的关联
定义对象类型相关菜单选项和定义每一个对象类型属性选项
在Win95中,相关菜单就是当你鼠标右击一个对象时所d出的菜单;属性就是当你选择属性项后一个展开的对话框。用简单术语来说就是在改变HKCR中的设置可以改变一个给定文件扩展名缺省的关联。改变一个文件类型的缺省图标,和添加或者删除给定对象类型的d出菜单内容(或者所有的对象类型)
HKCR包括了三种基本类型的子键
\ 或者文件扩展名子键
文件扩展名子键在d出菜单上连接文件扩展名到对象类型和相关 *** 作,属性项,和相关 *** 作。
\object 类型子键
对象类型子键定义了一个对象类型在它缺省图标的项,它的d出菜单和属性项,它的相关 *** 作和它的CLSID连接。
\CLSID 子键
在Windows下每件事都被用一个数字取代它的名字来对待。就象人往往是用名字来处理事情一样。CLSID是标识所有列出的图标,应用程序,目录,文件类型等等对象的数字。是微软为制造商分配的,每一个都必须是唯一的。制造商将CLSID放入安装程序文件这样就可以在安装时更新注册表。
注册表是应用程序进行时它们需要关于做什么的指示的数据库。比如说,假定你有一个微软Excel 7电子数据表的Word 7文档,当你在Word中双击这个电子数据表,应用程序菜单就会变成Excel的菜单而且电子数据表进入编辑状态,就好象你在Excel中一样。它是如何知道该做什么呢?每个Excel 7创建的文件都有Excel的CLSID连接。Word读这个CLSID后,到注册表中寻找指示,依赖CLSID下的数据运行DLL文件或者应用程序。
CLSID子键为对象类型提供了OLE和DDE信息和图标。相关菜单,或者包含在它子键中的属性项信息。这个可能是多数让人看到后觉得“恐怖”的键。每个CLSID数必须是唯一的,实际上,为了这个目的微软已经出产了CLSID-产生程序--这个结果导致你往往得到32位16进制的数字串,除非你是程序员,否则多数部分键看起来是很枯燥的。它们包括内存管理模式,客户机/服务器配置,和OLE处理的dll连接。
关于子键的一点注解
1)shell:Shell键有个一”action“子键,如同”open“一样,这里有一个command子键;command子键有一个缺省句值,它包含了运行程序的命令行。将一个”open“子键放在一个对象类型的shell子键中会在这个对象类型的d出菜单上多出一个”open“选项,给这个open子键一个command(缺省命令行"C:\Windows \Notepadexe %1")子键会使得打开这个对象类型时使用笔记本做为缺省应用程序。其他 *** 作选项包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex键有一个子键。它们包含的每一个子键指向一个为对象类型执行OLE和DDE功能的CLSID项(比如说快速查看,一个菜单处理子键下指向一个有句值的CLSID键列出了包含了文件浏览功能的dll文件)
3)shellnew:ShellNew包含了一个“command”句,它包含了一个打开对象类型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子键包含了一个“default”句,/ca>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13386040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存