我正在构建一个应用程序,它是一个简单的应用程序,我想要它做的只是用英语和架构显示os信息以及检查已安装的浏览器然后我将添加删除cookie的能力.
我坚持的是浏览器检测部分.谁能指点我一些体面的教程或如何?谢谢.
编辑:好的,我设法最终使用下面的hcb提供的代码段和其他人的评论(感谢所有人)来删除一些工作代码.到目前为止,它正在做我想要的,所以我认为id分享我对那些试图做同样事情的人:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
令我非常恼火的是,我注意到谷歌想要在本地应用数据中安装他们的浏览器.我设法解决这个问题,再次单独编写代码并检查:
Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Google\Update\Clients");
Run Code Online (Sandbox Code Playgroud)
编辑2:检查CurrentUserChrome似乎对一些朋友很好,所以一定没问题.
小智 12
像这样:
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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5322 次 |
| 最近记录: |