通用注册表设置






4.87/5 (39投票s)
重要的注册表提示,用于编程,包括将您的应用程序注册到 Windows 以及创建自定义文件类型
引言
注册表是 Windows 操作系统的一个强大组成部分,对程序员来说非常有价值。例如,您可以让您的应用程序出现在 Windows 的“添加/删除程序”中,或者创建您自己的文件类型。这些都通过注册表完成,本文将向您展示如何操作。
注册您的应用程序
让我们从基础开始,将您的应用程序注册到 Windows。通过这样做,您可以将您的应用程序添加到 Windows 的“添加/删除程序”中。对于此目的,有两种不同的键,具体取决于您想如何注册您的应用程序。也就是说,您是只想为当前用户注册,还是为使用计算机的所有用户(全局)注册。
对于当前用户: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
对于全局用户: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
现在,首先您将创建一个以您的程序命名的子键,例如“ExampleApp”,然后添加以下任何值
属性 | 描述 | 注册类型 |
AuthorizedCDFPrefix |
应用程序的更新 URL | REG_SZ |
注释 |
要显示的附加注释 | REG_SZ |
DisplayIcon |
已安装程序的显示图标,通常自动从安装路径获取 | REG_SZ |
DisplayName |
已安装程序的显示名称 | REG_SZ |
DisplayVersion |
已安装程序的版本(显示) | REG_SZ |
EstimatedSize |
整个程序的估计大小 | REG_SZ |
HelpLink |
产品支持的 URL | REG_SZ |
HelpTelephone |
产品支持的电话号码 | REG_SZ |
InstallDate |
安装日期 | REG_SZ |
InstallLocation |
已安装程序的安装位置 | REG_SZ |
InstallSource |
源文件的位置 | REG_SZ |
语言 |
程序的语言 | REG_SZ |
ModifyPath |
程序修改/修复文件的路径 | REG_SZ |
NoModify |
指示 Windows 不为程序显示“修改”选项。(0=真,1=假) | REG_DWORD |
NoRepair |
指示 Windows 不为程序显示“修复”选项。(0=真,1=假) | REG_DWORD |
出版社 |
发布者名称 | REG_SZ |
README |
README 文件的路径 | REG_SZ |
UninstallString |
程序卸载文件的路径 | REG_SZ |
URLInfoAbout |
应用程序/发布者页面的 URL | REG_SZ |
URLUpdateInfo |
用于更新应用程序信息的 URL | REG_SZ |
版本 |
已安装程序的版本(不显示) | REG_SZ |
VersionMajor |
已安装程序的主版本(不显示) | REG_SZ |
VersionMinor |
已安装程序的次版本(不显示) | REG_SZ |
有许多可用选项,但大多数程序只使用 DisplayName、DisplayVersion、NoModify、NoRepair 和 UninstallString 属性。我很少见过有更多属性的程序。最终,您应该得到一个与下图相似的结果,尽管您可能决定指定更多属性。
启动
接下来是如何在启动时自动启动您的程序。与以前一样,您可以为当前用户指定应用程序的启动路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
,或者为所有用户指定:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
。这次,您只需要指定一个以您的应用程序命名的键。其值应该是您的应用程序路径的字符串值,如下所示:
使用...打开
程序员最大的需求之一是允许用户在他们的程序中打开文件。对于这个过程,有两个主要步骤:
步骤 1
通过在 HKEY_CLASSES_ROOT\Applications
键中定义一个子键来指定您的应用程序。现在,您将为您的键命名与您的应用程序文件相同,并加上 .EXE 扩展名,例如 *Example.exe*。从这里,您将创建另一个子键:\shell\open\command
。然后,您将在 (Default)
值中指定您的应用程序路径,后跟任何必要的参数。您还必须遵循一个标准:路径名和参数必须用双引号括起来,然后是“%1”动词。Windows 将此动词替换为您正在打开的文件的路径。“%1”动词也必须用双引号括起来,并且必须在任何其他参数之前。
第二步
接下来,您必须找到要与您的程序关联的文件扩展名。扩展名位于 HKEY_CLASSES_ROOT
键下。在此示例中,我将使用 TXT 扩展名。然后,在文件扩展名键下创建子键 \OpenWithList
,并将此子键命名为与上一步中的应用程序文件相同的名称。
上述两个步骤中的应用程序文件键必须完全匹配。否则,Windows 将无法正确打开文件。
文件关联
文件关联与“使用...打开”过程类似。但是,这次您将在 HKEY_CLASSES_ROOT
键下创建一个子键,该子键与“使用...打开”过程的第一步具有相同的子键。您为此描述性键命名什么并不重要,但它通常是文件类型的描述。例如,TXT 扩展名有一个名为“txtfile”的关联键。此键与“使用...打开”过程的唯一区别是,您将有一个额外的子键,名为 DefaultIcon
。在其中,您将在 (Default)
值中指定与关联文件(例如文本文件)的图标的路径。然后,您将在 HKEY_CLASSES_ROOT
键中,如“使用...打开”过程的第二部分所创建的,要关联的文件扩展名的 (Default)
值中,添加您的描述性键。
Shell 菜单
最后,我们来到 Shell 菜单,这与“文件关联”和“使用...打开”过程都类似。这次,我们将使用两个键,具体取决于您希望如何设置 Shell 菜单。假设您想为 TXT 文件添加一个名为“Test”的菜单选项。您将转到 HKEY_CLASSES_ROOT\txtfile\shell
。此键,如您之前所见,将包含一个名为“open”的子键。您基本上将遵循与之前相同的步骤:创建您的菜单选项——即一个名为“test”的子键——以及在该子键下名为“command”的另一个子键。在“test”中,您将在 (Default)
值中添加您希望出现在上下文菜单中的命令。在“command”中,您将在 (Default)
值中添加您的应用程序路径和“%1”动词。
现在,如果您想为任何与您的程序关联的文件添加菜单项,您必须为您的应用程序的键重复上述步骤,即 HKEY_CLASSES_ROOT\Applications\Example.exe
。如果您想为目录或驱动器添加菜单选项,请记住 HKEY_CLASSES_ROOT
中始终存在 drive
和 folder
键,它们涉及与上述相同的步骤。
结论
注册表有时会令人困惑,但希望我已经帮助您澄清了一些问题。请记住备份您的注册表设置,并在编辑键时始终小心。我始终乐于接受更多想法,并很乐意将它们添加到我的文章中。
历史
- 2007 年 4 月 13 日 - 发布原始版本
- 2007 年 5 月 16 日 - 添加了“Shell 菜单”部分
- 2007 年 7 月 13 日 - 文章经过编辑并移至 CodeProject.com 主文章库