如何注册可执行文件控制面板项
对于作为.exe文件实现的控制面板项,不需要特殊导出或消息处理。 任何.exe文件都可以注册为命令对象,以便与控制面板文件夹中的入口点一起显示。
此处使用一个示例来演示注册要求。 该示例演示如何将名为“我的设置”的控制面板项注册为命令对象,使其显示在控制面板窗口中。 运行命令MyApp.exe /settings
时,也会显示“我的设置”窗口。
Instructions
步骤 1:
为控制面板项生成 GUID。 GUID 唯一标识控制面板项。 在此示例中, {0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}
是控制面板项的 GUID。
步骤 2:
使用 GUID 作为名称,将子项添加到注册表,如下所示。
HKEY_LOCAL_MACHINE
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
ControlPanel
NameSpace
{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}
(Default) = My Settings
Default 条目的数据只是控制面板项的REG_SZ名称。 默认条目可用于标识 GUID 条目,但它是可选的。
步骤 3:
使用 GUID 作为名称,将子项及其条目添加到注册表中,如下所示。
HKEY_CLASSES_ROOT
CLSID
{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}
(Default) = My Settings
LocalizedString = @%ProgramFiles%\MyCorp\MyApp.exe,-9
InfoTip = @%ProgramFiles%\MyCorp\MyApp.exe,-5
System.ApplicationName = MyCorporation.MySettings
System.ControlPanel.Category = 1,8
System.Software.TasksFileUrl = %ProgramFiles%\MyCorp\MyApp\MyTaskLinks.xml
Default。 REG_SZ。 控制面板项的显示名称。
LocalizedString。 可选。 REG_SZ或REG_EXPAND_SZ。 控制面板项的本地化名称的模块名称和字符串表 ID。 格式是“at”号 (@) 后跟包含多语言用户界面 (MUI) 字符串表.exe或.dll的名称。 环境变量可以用作路径的一部分的替代。 路径和文件名后跟逗号 (,) 和连字符 () ,后跟字符串表中的 ID。
如果模块没有字符串表,则此项可以只是显示名称字符串。 如果仅使用显示名称字符串而不是字符串表,则名称不会调整为当前显示语言。
信息提示。 REG_SZ或REG_EXPAND_SZ。 控制面板项的说明。 此信息显示在信息提示中,当鼠标悬停在项的图标上时显示。 语法与用于 LocalizedString 的语法相同,包括提供字符串而不是字符串表引用的选项。
System.ApplicationName。 REG_SZ。 项的规范名称。 窗体
control.exe /name System.ApplicationName
的 命令将打开项;例如control.exe /name MyCorporation.MySettings
。 有关使用Control.exe的详细信息,请参阅执行控制面板项。System.ControlPanel.Category。 REG_SZ。 一个 值,该值声明显示项的控制面板类别。 多个类别以逗号分隔。 在上面的示例中,条目指定 “我的设置” 项应同时出现在 “外观”和“个性化”和 “ 程序 ”类别中。 有关可能的类别值,请参阅分配控制面板类别。
System.Software.TasksFileUrl。 REG_SZ或REG_EXPAND_SZ。 定义 任务链接的 XML 文件的路径。 这可以是示例所示的直接文件路径,也可以是指定为模块名称和资源 ID 的嵌入资源,例如“%ProgramFiles%\MyCorp\MyApp\MyApp.exe,-31”。
步骤 4:
在同一 GUID 子项下,将以下子项添加到注册表,以提供包含该文件中图像的图标和资源 ID 的文件的路径。
HKEY_CLASSES_ROOT
CLSID
{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}
DefaultIcon
(Default) = %ProgramFiles%\MyCorp\MyApp.exe,-2
请注意,虽然语法与前面讨论的 LocalizedString 和 InfoTip 条目类似,但在指定路径的REG_SZ或REG_EXPAND_SZ条目中,不会使用“@”字符作为前缀。
步骤 5:
将以下信息添加到注册表,以提供在用户打开控制面板时系统调用的命令。
HKEY_CLASSES_ROOT
CLSID
{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}
Shell
Open
Command
(Default) = [REG_EXPAND_SZ] %ProgramFiles%\MyCorp\MyApp.exe /Settings
相关主题