好的,这可能是我的系统的问题,但我很难让 Windows 7 将我的自定义 exe 识别为 mailto 协议的默认处理程序。
首先,我见过这个:以编程方式向 mailto 协议注册 Windows 程序
接下来,我看到了这些:
- 如何使用 Windows 开始菜单注册 Internet 浏览器或电子邮件客户端
- 将应用程序注册到 URL 协议
我已经添加了看似适当的注册表项,但每次单击 mailto 链接(无论是在浏览器中还是通过“运行”窗口)时,仍然会出现 Windows Live Mail。我已经为所有用户和当前用户设置了注册表项,但它仍然不起作用。
当我转到“默认程序”应用程序并向下滚动到 mailto 协议时,我只看到列出了 Outlook 和 Windows Live Mail。我的自定义应用程序甚至没有出现。
我认为这要么是 Windows 7 的特殊情况,要么是我的计算机的问题。
我的自定义应用程序是 WinForms .Net 应用程序,但我认为这并不重要。
任何想法都非常受欢迎。
中描述的方式答案您在问题中引用的方法对于 Windows 7 以及其他操作系统来说似乎是正确的。
我假设您使用64位版本的Windows 7并且您的程序是32位应用程序。所以如果你的应用程序写在HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command
key 它只修改 keyHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\mailto\shell\open\command
用于 32 位应用程序。您可以阅读有关注册表虚拟化的更多信息here and here.
如果是你的情况,你可以直接调用本机 Win32 API注册OpenKeyEx与KEY_WOW64_64KEY在 32 位操作系统上将被忽略的标志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)