65.9K
CodeProject 正在变化。 阅读更多。
Home

通用注册表设置

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.87/5 (39投票s)

2007年4月13日

CPOL

6分钟阅读

viewsIcon

75036

重要的注册表提示,用于编程,包括将您的应用程序注册到 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 属性。我很少见过有更多属性的程序。最终,您应该得到一个与下图相似的结果,尽管您可能决定指定更多属性。

Screenshot - RegUninstall.png

启动

接下来是如何在启动时自动启动您的程序。与以前一样,您可以为当前用户指定应用程序的启动路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,或者为所有用户指定:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run。这次,您只需要指定一个以您的应用程序命名的键。其值应该是您的应用程序路径的字符串值,如下所示:

Screenshot - RegStart.png

使用...打开

程序员最大的需求之一是允许用户在他们的程序中打开文件。对于这个过程,有两个主要步骤:

步骤 1

通过在 HKEY_CLASSES_ROOT\Applications 键中定义一个子键来指定您的应用程序。现在,您将为您的键命名与您的应用程序文件相同,并加上 .EXE 扩展名,例如 *Example.exe*。从这里,您将创建另一个子键:\shell\open\command。然后,您将在 (Default) 值中指定您的应用程序路径,后跟任何必要的参数。您还必须遵循一个标准:路径名和参数必须用双引号括起来,然后是“%1”动词。Windows 将此动词替换为您正在打开的文件的路径。“%1”动词也必须用双引号括起来,并且必须在任何其他参数之前。

Screenshot - RegOpen.png

第二步

接下来,您必须找到要与您的程序关联的文件扩展名。扩展名位于 HKEY_CLASSES_ROOT 键下。在此示例中,我将使用 TXT 扩展名。然后,在文件扩展名键下创建子键 \OpenWithList,并将此子键命名为与上一步中的应用程序文件相同的名称。

Screenshot - RegFileType.png

上述两个步骤中的应用程序文件键必须完全匹配。否则,Windows 将无法正确打开文件。

文件关联

文件关联与“使用...打开”过程类似。但是,这次您将在 HKEY_CLASSES_ROOT 键下创建一个子键,该子键与“使用...打开”过程的第一步具有相同的子键。您为此描述性键命名什么并不重要,但它通常是文件类型的描述。例如,TXT 扩展名有一个名为“txtfile”的关联键。此键与“使用...打开”过程的唯一区别是,您将有一个额外的子键,名为 DefaultIcon。在其中,您将在 (Default) 值中指定与关联文件(例如文本文件)的图标的路径。然后,您将在 HKEY_CLASSES_ROOT 键中,如“使用...打开”过程的第二部分所创建的,要关联的文件扩展名的 (Default) 值中,添加您的描述性键。

Screenshot - RegFile.png

Shell 菜单

最后,我们来到 Shell 菜单,这与“文件关联”和“使用...打开”过程都类似。这次,我们将使用两个键,具体取决于您希望如何设置 Shell 菜单。假设您想为 TXT 文件添加一个名为“Test”的菜单选项。您将转到 HKEY_CLASSES_ROOT\txtfile\shell。此键,如您之前所见,将包含一个名为“open”的子键。您基本上将遵循与之前相同的步骤:创建您的菜单选项——即一个名为“test”的子键——以及在该子键下名为“command”的另一个子键。在“test”中,您将在 (Default) 值中添加您希望出现在上下文菜单中的命令。在“command”中,您将在 (Default) 值中添加您的应用程序路径和“%1”动词。

Screenshot - RegShellMenu.png

现在,如果您想为任何与您的程序关联的文件添加菜单项,您必须为您的应用程序的键重复上述步骤,即 HKEY_CLASSES_ROOT\Applications\Example.exe。如果您想为目录或驱动器添加菜单选项,请记住 HKEY_CLASSES_ROOT 中始终存在 drivefolder 键,它们涉及与上述相同的步骤。

结论

注册表有时会令人困惑,但希望我已经帮助您澄清了一些问题。请记住备份您的注册表设置,并在编辑键时始终小心。我始终乐于接受更多想法,并很乐意将它们添加到我的文章中。

历史

  • 2007 年 4 月 13 日 - 发布原始版本
  • 2007 年 5 月 16 日 - 添加了“Shell 菜单”部分
  • 2007 年 7 月 13 日 - 文章经过编辑并移至 CodeProject.com 主文章库
© . All rights reserved.