我试图让用户选择我的应用程序用来启动网址的浏览器。目前它使用默认浏览器,但有些人想指定不同的浏览器。
我想仅显示列表中已安装的浏览器,并且我将像这样启动它们:
Process.Start("chrome", url);
(更多信息) https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.process.start?view=net-5.0
问题是,如果 Chrome 没有安装(并且在路径中),它就会失败。
如何在不调用它的情况下检查此调用是否会失败(这样我可以预先过滤我的列表,如果它不起作用,则删除 chrome)?
在 Windows 中,所有已安装的应用程序都有一个密钥HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
注册表项。一种解决方案是迭代此键中的所有条目,看看它们是否与您支持的浏览器的名称匹配。
获得每个浏览器的注册表项后,您就可以获取Path
每个键的值,并查看指定路径中是否存在可执行文件。
需要注意的一件事是,在 64 位版本的 Windows 上,32 位应用程序列在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)