检测到已安装的浏览器,因此Process.Start(“ chrome”)不会出错

Dan*_*eny 5 .net c# browser

我试图让用户选择我的应用程序用来启动url的浏览器。当前,它使用默认浏览器,但有些人想指定其他浏览器。

我只想在列表中显示已安装的浏览器,并按以下方式启动它们:

Process.Start(“ chrome”,url);

问题是,如果未安装Chrome(且未在路径中),它将失败。

如何检查此调用是否会失败而不不调用它(因此我可以预过滤列表,如果无法使用则删除chrome)?

Jar*_*ell 7

在Windows中,所有已安装的应用程序在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths注册表项中都有一个项。一种解决方案是遍历此键中的所有条目,并查看它们是否与您支持的浏览器的名称匹配。

获得每个浏览器的注册表项后,即可获取Path每个项的值,并查看指定路径中是​​否存在可执行文件。

需要注意的一件事是,在64位版本的Windows上,中列出了32位应用程序HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths