Windows,设置自定义协议处理程序名称

3
我想给我的协议处理程序设置一个名称,但不想修改可执行文件。当我按照这个答案注册协议处理程序并尝试从浏览器中打开它时,会弹出如下提示框:

Popup

现在,Chrome和其他浏览器从可执行文件属性中获取协议名:

Windows Properties

我的问题是:有没有一种Windows注册表键可以让我指定协议名而不需要修改可执行文件?

2个回答

4
更好的方式是直接在协议定义中包含应用程序名称:
[HKEY_CURRENT_USER\SOFTWARE\Classes\your-protocol-name\Application]
"ApplicationName"="Your Application Name"

修改MuiCache(如之前的答案中建议的)是棘手的-它并不总是起作用,例如如果您的处理程序可执行文件名称为ProtocolHandler.exe并且已安装了MS Office。


1

您需要在注册表中指定友好的应用程序名称

HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache中添加一个条目,名称为“PATH\TO\EXE.FriendlyAppName”,值将是您想要显示在浏览器弹出窗口中的名称。


在批处理文件中添加到注册表:

REG ADD "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /f /t "REG_SZ" /v "C:\protocol_handler.exe.FriendlyAppName" /d "App Name"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接