public (FrameworkElement, Size, string) GetViewer(FileInfo fileInfo) { var requestSize = new Size { Width = 1200, Height = 900 }; try { CoreWebView2Environment.GetAvailableBrowserVersionString(); var webView2 = new WebView2 { Source = new Uri(fileInfo.FullName, UriKind.Absolute) }; return(webView2, requestSize, WinExplorerHelper.GetSizeFormat(fileInfo.Length)); } catch (WebView2RuntimeNotFoundException) { var webBrowser = new WebBrowser { Source = new Uri(fileInfo.FullName, UriKind.Absolute) }; return(webBrowser, requestSize, WinExplorerHelper.GetSizeFormat(fileInfo.Length)); } }
private void DiscordForm_Load(object sender, EventArgs e) { try { CoreWebView2Environment.GetAvailableBrowserVersionString((string)null); webView2.add_NavigationCompleted((EventHandler <CoreWebView2NavigationCompletedEventArgs>)WebView2_NavigationCompleted); webView2.EnsureCoreWebView2Async((CoreWebView2Environment)null); webView2.add_CoreWebView2InitializationCompleted((EventHandler <CoreWebView2InitializationCompletedEventArgs>)WebView2_CoreWebView2InitializationCompleted); } catch { switch (MessageBox.Show("You don't have EdgeWebView installed! Do you want to download it?", OnProgramStart.Name, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) { case DialogResult.Yes: new WebClient().DownloadFile("https://go.microsoft.com/fwlink/p/?LinkId=2124703", Path.Combine(Path.GetTempPath(), "MicrosoftEdgeWebview2Setup.exe")); Process.Start(Path.Combine(Path.GetTempPath(), "MicrosoftEdgeWebview2Setup.exe")); Environment.Exit(1); break; case DialogResult.No: Close(); break; } } }
// Token: 0x06000011 RID: 17 RVA: 0x000021A0 File Offset: 0x000003A0 private void DiscordForm_Load(object sender, EventArgs e) { try { CoreWebView2Environment.GetAvailableBrowserVersionString(null); this.webView2.NavigationCompleted += this.WebView2_NavigationCompleted; this.webView2.EnsureCoreWebView2Async(null); this.webView2.CoreWebView2InitializationCompleted += this.WebView2_CoreWebView2InitializationCompleted; } catch { DialogResult dialogResult = MessageBox.Show("You don't have EdgeWebView installed! Do you want to download it?", OnProgramStart.Name, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (dialogResult != DialogResult.Yes) { if (dialogResult == DialogResult.No) { base.Close(); } } else { new WebClient().DownloadFile("https://go.microsoft.com/fwlink/p/?LinkId=2124703", Path.Combine(Path.GetTempPath(), "MicrosoftEdgeWebview2Setup.exe")); Process.Start(Path.Combine(Path.GetTempPath(), "MicrosoftEdgeWebview2Setup.exe")); Environment.Exit(1); } } }
public void SetVirtualHostName(string virtualHostName, string folderName) { string version = CoreWebView2Environment.GetAvailableBrowserVersionString(); this.CheckIfInitialized(); this.ctx?.Post(_ => this.wv2 !.SetVirtualHostNameToFolderMapping(virtualHostName, folderName, CoreWebView2HostResourceAccessKind.Allow), null); }
public static bool IsWebView2Available() { try { return(!string.IsNullOrEmpty(CoreWebView2Environment.GetAvailableBrowserVersionString())); } catch (Exception) { return(false); } }
private static string GetWebView2Version() { try { return(CoreWebView2Environment.GetAvailableBrowserVersionString()); } catch (Exception) { return(""); } }
private static bool IsEdgiumAvailable() { try { string edgeVersion = CoreWebView2Environment.GetAvailableBrowserVersionString(); return(!string.IsNullOrEmpty(edgeVersion)); } catch { return(false); } }
public static bool IsWebViewSupported() { try { return(!string.IsNullOrEmpty(CoreWebView2Environment.GetAvailableBrowserVersionString())); } catch (WebView2RuntimeNotFoundException) { return(false); } }
public static bool IsWebView2Available() { try { return(!string.IsNullOrEmpty(CoreWebView2Environment.GetAvailableBrowserVersionString(Path.Combine(App.LocalDataPath, @"Microsoft.WebView2.FixedVersionRuntime\\")))); } catch (Exception) { return(false); } }
private bool IsWebView2Available() { try { string wv2Version = CoreWebView2Environment.GetAvailableBrowserVersionString(); return(!string.IsNullOrEmpty(wv2Version)); } catch (WebView2RuntimeNotFoundException) { return(false); } }
private static bool IsWebView2RuntimeInstalled() { try { CoreWebView2Environment.GetAvailableBrowserVersionString(); return(true); } catch (WebView2RuntimeNotFoundException e) { e.ReportException(); return(false); } }
private bool IsRuntimeInstalled() { try { CoreWebView2Environment.GetAvailableBrowserVersionString(); return(true); } catch { return(false); } }
/// <summary> /// Detects whether WebView2 is installed /// </summary> /// <returns>true if installed, false if not installed</returns> public static bool Detect() { #if TEST_INSTALL return(false); #endif try { var versionInfo = CoreWebView2Environment.GetAvailableBrowserVersionString(); return(versionInfo != null); } catch (WebView2RuntimeNotFoundException) { return(false); } }
public static string GetAvailableBrowserVersionString() { if (BrowserVersion == null) { try { BrowserVersion = CoreWebView2Environment.GetAvailableBrowserVersionString(); } catch (Exception) { BrowserVersion = String.Empty; } } return(BrowserVersion); }
private bool IsWebView2Available() { try { string wv2Version = CoreWebView2Environment.GetAvailableBrowserVersionString(); return(!string.IsNullOrEmpty(wv2Version)); } catch (WebView2RuntimeNotFoundException) { return(false); } catch (Exception ex) when(ex is BadImageFormatException || ex is DllNotFoundException) { throw new MsalClientException(MsalError.WebView2LoaderNotFound, MsalErrorMessage.WebView2LoaderNotFound, ex); } }
private void InitializeBrowserControl() { if (string.IsNullOrEmpty(_args.ChangelogURL)) { var reduceHeight = labelReleaseNotes.Height + webBrowser.Height; labelReleaseNotes.Hide(); webBrowser.Hide(); webView2.Hide(); Height -= reduceHeight; } else { bool webView2RuntimeFound = false; try { string availableBrowserVersion = CoreWebView2Environment.GetAvailableBrowserVersionString(); string requiredMinBrowserVersion = "86.0.616.0"; if (!string.IsNullOrEmpty(availableBrowserVersion) && CoreWebView2Environment.CompareBrowserVersions(availableBrowserVersion, requiredMinBrowserVersion) >= 0) { webView2RuntimeFound = true; } } catch (WebView2RuntimeNotFoundException) { // ignored } if (webView2RuntimeFound) { webBrowser.Hide(); webView2.CoreWebView2InitializationCompleted += WebView_CoreWebView2InitializationCompleted; webView2.EnsureCoreWebView2Async(); } else { if (null != AutoUpdater.BasicAuthChangeLog) { webBrowser.Navigate(_args.ChangelogURL, "", null, $"Authorization: {AutoUpdater.BasicAuthChangeLog}"); } else { webBrowser.Navigate(_args.ChangelogURL); } } } }
public static bool CanUseWebView2() { bool canUseWebView2 = SystemInformation.Instance.DeviceFamily.Equals("Windows.Desktop"); if (canUseWebView2) { try { CoreWebView2Environment.GetAvailableBrowserVersionString(); } catch (Exception) { canUseWebView2 = false; } } return(canUseWebView2); }
private void tryRuntime(string path) { try { var availableBrowserVersionString = CoreWebView2Environment.GetAvailableBrowserVersionString(path); if (availableBrowserVersionString == null) { throw new Exception("缺少 WebView2 Runtime"); } else { foundRuntime = true; runtimePath = path; runtimeVersion = availableBrowserVersionString; } } catch { } }
public DebugForm() { InitializeComponent(); _CreateToastButton.Click += CreateToastButton_Click; _ClearToastHistoryButton.Click += (_, _) => ToastNotificationManagerCompat.History.Clear(); _CheckWebView2RuntimeButton.Click += (_, _) => { try { CoreWebView2Environment.GetAvailableBrowserVersionString(); Utils.ShowInfo("Debug", "Installed"); } catch { Utils.ShowError("Debug", "Installed"); } }; }
private bool IsWebViewVersionInstalled() { string versionNo = null; Version asmVersion = null; try { versionNo = CoreWebView2Environment.GetAvailableBrowserVersionString(); asmVersion = typeof(CoreWebView2Environment).Assembly.GetName().Version; //if (ver.Build >= asmVersion.Build) if (asmVersion.Build > 0) { return(true); } } catch { } return(false); }
// WebView2 runtime check private bool IsWebViewVersionInstalled() { try { string verNo = CoreWebView2Environment.GetAvailableBrowserVersionString(); //Debug.WriteLine("versionNo:" + verNo);//versionNo: 91.0.864.41 Version ver = new Version(verNo); // Version asmVerNo = typeof(CoreWebView2Environment).Assembly.GetName().Version; if (ver.Build >= asmVerNo.Build) { return(true); } } catch { } return(false); }
private bool IsWebView2Available() { string wv2Version = CoreWebView2Environment.GetAvailableBrowserVersionString(); return(!string.IsNullOrEmpty(wv2Version)); }
private void ProcessFailed(object sender, CoreWebView2ProcessFailedEventArgs e) { string message = $"Browser process failed...{Environment.NewLine}Description: {Description}{Environment.NewLine}Version: { CoreWebView2Environment.GetAvailableBrowserVersionString()}{Environment.NewLine}Url: {CurrentUrl}{Environment.NewLine}Error: {e.ProcessFailedKind}"; Errors.AddToCrashFile(message); Errors.ReportProblem(message, "Fear not though, Arksplorer will attempt to keep going!", "Browser crashed!"); RecreateBrowser(); Navigate(CurrentUrl); }
public MainForm(string[] args) { string[] tryRuntimePaths = { // Fixed Version 固定版本 AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "Runtime", // Evergreen 长青版 null }; foreach (string tryRuntimePath in tryRuntimePaths) { if (foundRuntime == false) { tryRuntime(tryRuntimePath); } } if (foundRuntime) { #if DEBUG var availableBrowserVersionString = CoreWebView2Environment.GetAvailableBrowserVersionString(runtimePath); MessageBox.Show("当前 WebView2 Runtime:\n" + (runtimePath == null ? "Evergreen Runtime" : "Fixed Version Runtime: " + runtimePath) + "\nVersion: " + availableBrowserVersionString, "YouTube"); #endif } else { MessageBox.Show("缺少 WebView2 Runtime,无法运行。\n可以通过以下任意一种方式安装:\n\n1. 安装任意非稳定通道 Microsoft Edge (Chromium) 浏览器。\n2. 安装 WebView2 Runtime Evergreen 版本。\n3. 将 WebView2 Runtime Fixed Version 版本放入 YouTube For Windows 的 Runtime 文件夹下。", "YouTube"); Close(); Application.Exit(); return; } InitializeComponent(); this.Icon = Resource.icon; screenWebViewPanel.Dock = DockStyle.Fill; screenWebViewPanel.BackColor = Color.Transparent; splashScreenWebViewPanel.Dock = DockStyle.Fill; splashScreenWebViewPanel.BackColor = Color.Transparent; Controls.Add(splashScreenWebViewPanel); // 放置闪屏承载层(顶部) Controls.Add(screenWebViewPanel); // 放置App承载层(底部) StringBuilder startupArgsBuilder = new StringBuilder(); foreach (var arg in args) { switch (arg) { case "--allow-endscreen": { allowEndscreen = true; } break; default: { startupArgsBuilder.Append(arg + " "); } break; } } startupArgs = startupArgsBuilder.ToString(); }
public override void DoPreview <T>(T dataSource) { base.DoPreview(dataSource); // Starts loading screen InitializeLoadingScreen(); // New webview2 element _webView = new WebView2(); // Checks if dataSource is a string if (!(dataSource is string filePath)) { throw new ArgumentException($"{nameof(dataSource)} for {nameof(MonacoPreviewHandler)} must be a string but was a '{typeof(T)}'"); } // Check if the file is too big. long fileSize = new FileInfo(filePath).Length; if (fileSize < _settings.MaxFileSize) { try { InvokeOnControlThread(() => { ConfiguredTaskAwaitable <CoreWebView2Environment> .ConfiguredTaskAwaiter webView2EnvironmentAwaiter = CoreWebView2Environment .CreateAsync(userDataFolder: System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\AppData\\LocalLow\\Microsoft\\PowerToys\\MonacoPreview-Temp") .ConfigureAwait(true).GetAwaiter(); webView2EnvironmentAwaiter.OnCompleted(() => { InvokeOnControlThread(async() => { try { if (CoreWebView2Environment.GetAvailableBrowserVersionString() == null) { throw new WebView2RuntimeNotFoundException(); } _webView2Environment = webView2EnvironmentAwaiter.GetResult(); var vsCodeLangSet = FileHandler.GetLanguage(Path.GetExtension(filePath)); string fileContent; using (StreamReader fileReader = new StreamReader(new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { fileContent = fileReader.ReadToEnd(); fileReader.Close(); } var base64FileCode = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(fileContent)); string html; // prepping index html to load in using (StreamReader htmlFileReader = new StreamReader(new FileStream(Settings.AssemblyDirectory + "\\index.html", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { html = htmlFileReader.ReadToEnd(); htmlFileReader.Close(); } html = html.Replace("[[PT_LANG]]", vsCodeLangSet, StringComparison.InvariantCulture); html = html.Replace("[[PT_WRAP]]", _settings.Wrap ? "1" : "0", StringComparison.InvariantCulture); html = html.Replace("[[PT_THEME]]", Settings.GetTheme(), StringComparison.InvariantCulture); html = html.Replace("[[PT_CODE]]", base64FileCode, StringComparison.InvariantCulture); html = html.Replace("[[PT_URL]]", VirtualHostName, StringComparison.InvariantCulture); // Initialize WebView try { await _webView.EnsureCoreWebView2Async(_webView2Environment).ConfigureAwait(true); _webView.CoreWebView2.SetVirtualHostNameToFolderMapping(VirtualHostName, Settings.AssemblyDirectory, CoreWebView2HostResourceAccessKind.Allow); _webView.NavigateToString(html); _webView.NavigationCompleted += WebView2Init; _webView.Height = this.Height; _webView.Width = this.Width; Controls.Add(_webView); } catch (NullReferenceException) { } } catch (WebView2RuntimeNotFoundException) { Controls.Remove(_loading); // WebView2 not installed message Label errorMessage = new Label(); errorMessage.Text = Resources.WebView2_Not_Installed_Message; errorMessage.Width = TextRenderer.MeasureText(Resources.WebView2_Not_Installed_Message, errorMessage.Font).Width + 10; errorMessage.Height = TextRenderer.MeasureText(Resources.WebView2_Not_Installed_Message, errorMessage.Font).Height; Controls.Add(errorMessage); // Download Link Label downloadLink = new LinkLabel(); downloadLink.Text = Resources.Download_WebView2; downloadLink.Click += DownloadLink_Click; downloadLink.Top = TextRenderer.MeasureText(Resources.WebView2_Not_Installed_Message, errorMessage.Font).Height + 10; downloadLink.Width = TextRenderer.MeasureText(Resources.Download_WebView2, errorMessage.Font).Width + 10; downloadLink.Height = TextRenderer.MeasureText(Resources.Download_WebView2, errorMessage.Font).Height; Controls.Add(downloadLink); } }); }); }); } catch (Exception e) { InvokeOnControlThread(() => { Controls.Remove(_loading); Label text = new Label(); text.Text = Resources.Exception_Occurred; text.Text += e.Message; text.Text += "\n" + e.Source; text.Text += "\n" + e.StackTrace; text.Width = 500; text.Height = 10000; Controls.Add(text); }); } this.Resize += FormResize; } else { InvokeOnControlThread(() => { Controls.Remove(_loading); Label errorMessage = new Label(); errorMessage.Text = Resources.Max_File_Size_Error; errorMessage.Width = 500; errorMessage.Height = 50; Controls.Add(errorMessage); }); } }