如何使用C#为新手检查已安装的浏览器
我正在构建一个应用程序,这是一个简单的应用程序,我想要它做的就是用简单的英语显示操作系统信息和架构,并检查是否安装了浏览器,然后我将添加删除cookie的功能,等等 我粘在上面的是浏览器检测部分。有人能给我指一些像样的教程或指南吗?谢谢 编辑:好的,我终于用下面hcb提供的代码片段和其他人的评论划出了一些工作代码(谢谢大家)。到目前为止,它正在做我想做的事情,所以我想我可以为那些试图做同样事情的人分享我所拥有的:如何使用C#为新手检查已安装的浏览器,c#,.net,browser,C#,.net,Browser,我正在构建一个应用程序,这是一个简单的应用程序,我想要它做的就是用简单的英语显示操作系统信息和架构,并检查是否安装了浏览器,然后我将添加删除cookie的功能,等等 我粘在上面的是浏览器检测部分。有人能给我指一些像样的教程或指南吗?谢谢 编辑:好的,我终于用下面hcb提供的代码片段和其他人的评论划出了一些工作代码(谢谢大家)。到目前为止,它正在做我想做的事情,所以我想我可以为那些试图做同样事情的人分享我所拥有的: RegistryKey browserKeys; browser
RegistryKey browserKeys;
browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Clients\StartMenuInternet");
if (browserKeys == null)
{
browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet");
}
string[] browserNames = browserKeys.GetSubKeyNames();
foreach (string browser in browserNames)
{
using (RegistryKey tempKey = browserKeys.OpenSubKey(browser))
{
foreach (string keyName in tempKey.GetValueNames())
{
if (tempKey.GetValue(keyName).ToString() == "Internet Explorer")
{
internetExplorerButton.Enabled = true;
internetExplorerButton.BackgroundImage = Properties.Resources.iExplorer;
if (internetExplorerButton.Enabled == true)
{
Label ieLabel = new Label();
ieLabel.Text = "Found!";
explorerLable.Text = ieLabel.Text;
}
}
让我非常恼火的是,我注意到谷歌想在本地应用程序数据中安装他们的浏览器。我设法解决了这个问题,再次单独编写代码并检查:
Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Google\Update\Clients");
Edit2:检查Chrome的CurrentUser
对于一些朋友来说似乎效果不错,所以它一定没问题。像这样:
RegistryKey browserKeys;
//on 64bit the browsers are in a different location
browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Clients\StartMenuInternet");
if (browserKeys == null)
browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet");
string[] browserNames = browserKeys.GetSubKeyNames();
重复问题的答案可能重复,这里有一个链接:我认为你不会比这更简单。我已经读过了,但我不明白他的“浏览器”类有什么用途。他的浏览器类包含什么?还有必要我也创建一个吗?他的
browser
类可能只是一个简单的类,具有与浏览器相关的属性。你可以用他使用的属性创建一个类来按原样使用他的代码,或者你可以只看他是如何获得值的,而不是看他是如何存储值的。请不要包括不专业的,你在这里的帖子中的粗话。检查该位置和检查HKEY\U LOCAL\U MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall有什么区别?除了显而易见的。这将列出所有已安装的程序(可以卸载),而不仅仅是浏览器。因此,您需要一个“已接受”的浏览器列表来进行匹配,可能会错过用户可能安装的浏览器。那么StartMenuInternet是严格意义上的浏览器吗?我懂了。所以browserKeys.GetSubKeyNames()接受这些名称并将它们存储在一个字符串数组中,我只是在数组中迭代寻找“firefox”之类的东西吗?我问这个问题的唯一原因是因为我需要一段时间来完善代码,我是一个完全的新手,所以在我得到它之前,这将是反复试验。谢谢。你可以在browserNames上加一个换行符,然后看看你在机器上看到的名字。谢谢大家的帮助,我来试试:)