【发布时间】:2014-06-19 12:05:52
【问题描述】:
我正在尝试在 Windows 上设置一个测试应用程序以通过“myapp://website.com”样式的 URI 启动。大多数情况下,我的基础是这样的教程:
http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx
虽然我在 HKEY_CLASSES_ROOT 中进行了初始设置,但新的限制是无需管理员访问即可进行安装。因此,我删除了 CLASSES_ROOT 中的所有更改,并决定重试注册表添加,而不是使用 HKEY_CURRENT_USER/Software/Classes/myapp 中的 HKEY_CURRENT_USER 分支。
这似乎被浏览器检测到,并显示确认对话框。但是,他们从未真正运行过该应用程序。 Internet Explorer 提供了最有用的错误消息,并带有一个对话框,显示“无法为 {uri} 打开此帮助应用程序。此地址中指定的协议无效。请确保地址正确,然后重试。
对于非管理员设置,我是否缺少某些注册表部分?这是我的更改作为 .reg 的导出。 (破折号审查我的用户名)。 EditFlags 是作为猜测添加的,但没有它也无法工作。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\myapp]
"URL Protocol"=""
@="URL:David Protocol"
"EditFlags"=dword:02000000
[HKEY_CURRENT_USER\Software\Classes\myapp\DefaultIcon]
@="C:\\Users\\------\\AppData\\Roaming\\-----s Stuffs\\URISchemeTest.exe,1"
[HKEY_CURRENT_USER\Software\Classes\myapp\shell]
[HKEY_CURRENT_USER\Software\Classes\myapp\shell\open]
[HKEY_CURRENT_USER\Software\Classes\myapp\shell\open\command]
@="\"C:\\Users\\-------\\AppData\\Roaming\\------s Stuffs\\URISchemeText.exe\" \"%1\""
【问题讨论】:
-
什么是 EditFlags 02000000?我在这里找不到它:msdn.microsoft.com/en-us/library/windows/desktop/… 无论如何也无济于事。
-
我认为您忘记定义默认操作(打开):
[HKEY_CURRENT_USER\Software\Classes\mailto\shell] @="open"。你能不能把你的 exe 也移到另一个文件夹? -
我刚刚检查了我这边的 mailto 的“shell”键,它没有任何值(即 default="open")。实际上,我有时可能会让这个工作,这可能与路径问题有关,但我不确定。似乎默认图标的任何问题都会阻止启动。 @SimonMourier 我认为我通过误读教程错误地写了 02.. 而不是 ..20,但其他方式也没有做任何事情。
-
如果您从“运行”菜单中输入 uri 会发生什么?
-
我刚刚在没有 EditFlags 或图标的 Windows 7 上尝试过,它运行良好。您使用的是什么操作系统?您是否有过时的机器范围设置(
HKEY_CLASSES_ROOT)与您的每个用户设置发生冲突?您是否尝试过在新用户帐户下运行它?浏览器可能正在缓存有关您的新协议的一些信息。
标签: windows registry administrator uri-scheme