我想给我的协议处理程序设置一个名称,但不想修改可执行文件。当我按照这个答案注册协议处理程序并尝试从浏览器中打开它时,会弹出如下提示框:
现在,Chrome和其他浏览器从可执行文件属性中获取协议名:
我的问题是:有没有一种Windows注册表键可以让我指定协议名而不需要修改可执行文件?
现在,Chrome和其他浏览器从可执行文件属性中获取协议名:
我的问题是:有没有一种Windows注册表键可以让我指定协议名而不需要修改可执行文件?
[HKEY_CURRENT_USER\SOFTWARE\Classes\your-protocol-name\Application]
"ApplicationName"="Your Application Name"
修改MuiCache(如之前的答案中建议的)是棘手的-它并不总是起作用,例如如果您的处理程序可执行文件名称为ProtocolHandler.exe并且已安装了MS Office。
您需要在注册表中指定友好的应用程序名称:
在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"