你在控制面板中看到的每一个项目都是可执行文件。所以就像我在《》写的那样,你可以把Steam注册为控制面板项目,也可以把QQ注册为控制面板项目。
这里我以在控制面板中添加《阴阳师》为例。
第一步,生成一个GUID,这个GUID是作为这个控制面板项目的唯一标识,不想编用这个网站(安全)就完全OK。这里我用{86506789-0817-40bd-9161-9b68d19b01c0}作为阴阳师的GUID。
第二步,把这个GUID作为项目的名字写进控制面板的命名空间:
在
Computer\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\
中新建一个名为{86506789-0817-40bd-9161-9b68d19b01c0}的子键,这个键的默认值(REG_SZ)的数据理是可选的,但个人建议最好写上,方便查找注册表项。所以有如下代码
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{86506789-0817-40bd-9161-9b68d19b01c0}]
@="为了寮和崽的美好未来,肝杯!"
;Win10之家原创内容
第三步在
Computer\HKCR\CLSID\
中把这个项目的一些有用的信息都写进去,所以有如下代码:
[HKEY_CLASSES_ROOT\CLSID\{86506789-0817-40bd-9161-9b68d19b01c0}]
@="嘤阳师"
"InfoTip"="日大蛇、刷御魂,或维护你的肝脏"
"System.ControlPanel.Category"="5,8"
"System.ApplicationName"="netease.onmyoji"
;Win10之家原创内容
我来重点讲一下这里。
这个键的默认值(REG_SZ)的数据是你的项目在控制面板中显示的名字。为了有说明性,在例子中我把阴阳师写做“嘤阳师”。
InfoTip(REG_SZ或REG_EXPAND_SZ):这个值用于在鼠标悬停于项目上时显示提示信息。这个值的类型可以是字符串或者多值字符串,值的数据是包含MUI String Table的资源模块名称和目标字符串在String Table中对应的ID,语法是:
@模块所在路径\模块名称.exe,-ID或? @模块所在路径\模块名称.dll,-ID
也可以直接用环境变量作为路径的一部分。或者你嫌麻烦直接在这个值的数据中写一段自己的话上去,就像例子中的那样。
LocalizedString(REG_SZ或REG_EXPAND_SZ):可选值,用于为项目名本地化用的,而且需要程序本身有String Table才行,具体语法和InfoTip值的语法一样自己强行添加其他程序的话就不用写这条了。
System.ApplicationName(REG_SZ):用于给项目指定一个规范名称(Canonical Names),有了这个规范名可以做各种操作,比如最简单的隐藏这个项目、通过API或者命令行(control exe /name System.ApplicationName)来调用这个项目。当然,可以像我上篇文章那样,干脆不写。
System.ControlPanel.Category(REG_SZ):给这个项目指派一个分组。如果你想要这个项目出现在不同的分组中,你可以为写上不同的分组ID,中间用英文逗号隔开。就像例子中那样,我写了5,8,则“嘤阳师”将会出现在“系统和安全”、“程序”分组中。