using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.Security.Permissions;
using Microsoft.Win32;
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public class Program : Form
{
private WebBrowser webBrowser;
public Program()
{
InitialiseForm();
}
public void InitialiseForm()
{
webBrowser = new WebBrowser();
Controls.AddRange(new Control[] {webBrowser});
webBrowser.ScriptErrorsSuppressed = true;
webBrowser.Dock = DockStyle.Fill;
webBrowser.Navigate("http://www.nationalgeographic.com/");
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Program());
}
我被告知要在我的设置中粘贴下面这段代码,我就是这么做的。我甚至不知道它做了什么。我只想使用C#WebView构建webBrowser。为什么这变得如此复杂,如何正确地使WebBrowser渲染页面。它只显示我的webView上的水平线的空白页面以及我的计算机上运行的Internet Explorer版本。我试图显示的网页是nationalgeographic.com.Please help
private void Form1_Load(object sender, EventArgs e) {
var appName = Process.GetCurrentProcess().ProcessName + ".exe";
SetIE8KeyforWebBrowserControl(appName);
}
private void SetIE8KeyforWebBrowserControl(string appName) {
RegistryKey Regkey = null;
try
{
// For 64 bit machine
//if (Environment.Is64BitOperatingSystem)
//Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION", true);
//else
//For 32 bit machine
Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true);
// If the path is not correct or
// if the user haven't priviledges to access the registry
if (Regkey == null)
{
MessageBox.Show("Application Settings Failed - Address Not found");
return;
}
string FindAppkey = Convert.ToString(Regkey.GetValue(appName));
// Check if key is already present
if (FindAppkey == "8000")
{
MessageBox.Show("Required Application Settings Present");
Regkey.Close();
return;
}
// If a key is not present add the key, Key value 8000 (decimal)
if (string.IsNullOrEmpty(FindAppkey))
Regkey.SetValue(appName, unchecked((int)0x1F40), RegistryValueKind.DWord);
// Check for the key after adding
FindAppkey = Convert.ToString(Regkey.GetValue(appName));
if (FindAppkey == "8000")
MessageBox.Show("Application Settings Applied Successfully");
else
MessageBox.Show("Application Settings Failed, Ref: " + FindAppkey);
}
catch (Exception ex)
{
MessageBox.Show("Application Settings Failed");
MessageBox.Show(ex.Message);
}
finally
{
// Close the Registry
if (Regkey != null)
Regkey.Close();
}
}
}
答案 0 :(得分:0)
.NET中使用的Web浏览器是Internet Explorer,您可以从WebBrowser.Version
确定版本,我建议使用Chromium Web浏览器,它可以作为nuget包使用,可以用作Windows窗体或WPF控件,并支持html 5,它比IE更好,检查他们的项目并搜索C#的教程,查看此链接:https://github.com/cefsharp/CefSharp