我正在使用WebBrowser control。
大部分时间都可以正常工作,但是导航到新页面或等待加载新页面有时会挂起。
有没有办法抓住这个?即如果页面在一段时间后无法导航或加载,则终止该过程?
我正在使用 - webBrowser1_DocumentCompleted
事件来获取页面按预期加载/导航时的某些行为但不确定如果页面挂起时如何捕获?
答案 0 :(得分:1)
Maby你应该尝试实现某种超时逻辑吗?关于此,网上有很多样本。 F.E. this one
此外,您可能对WebBrowserControl ProgressChanged
的此事件感兴趣答案 1 :(得分:0)
这是因为webbrowser组件是Internet Explorer的非常基本的模型,它被困在ajax页面上。您可以明确解决此问题以使用最新版本的Internet Explorer ...使用此代码...
try
{
string installkey = @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
string entryLabel = "YourExe.exe";
string develop = "YourExe.vshost.exe";//This is for Visual Studio Debugging...
System.OperatingSystem osInfo = System.Environment.OSVersion;
string version = osInfo.Version.Major.ToString() + '.' + osInfo.Version.Minor.ToString();
uint editFlag = (uint)((version == "6.2") ? 0x2710 : 0x2328); // 6.2 = Windows 8 and therefore IE10
Microsoft.Win32.RegistryKey existingSubKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(installkey, false); // readonly key
if (existingSubKey.GetValue(entryLabel) == null)
{
existingSubKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(installkey, true); // writable key
existingSubKey.SetValue(entryLabel, unchecked((int)editFlag), Microsoft.Win32.RegistryValueKind.DWord);
}
if (existingSubKey.GetValue(develop) == null)
{
existingSubKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(installkey, true); // writable key
existingSubKey.SetValue(develop, unchecked((int)editFlag), Microsoft.Win32.RegistryValueKind.DWord);
}
}
catch
{
MessageBox.Show("You Don't Have Admin Previlege to Overwrite System Settings");
}
}
右键单击你的Exe。和vshost.exe并以管理员身份运行以更新此应用程序的注册表....