private void MainForm_DocumentTitleChanged(object sender, NetDimension.NanUI.Browser.DocumentTitleChangedEventArgs e) { try { if (Wnconfig.GetUrl().Contains(e.Title)) { return; } this.Title = e.Title; this.Subtitle = ""; Wnconfig.SetAppsettingValue("Title", this.Title); Wnconfig.SetAppsettingValue("Subtitle", this.Subtitle); if (this.Title != "社区卫生信息系统") { ShortCutHelper.SetWinningBrowerShortcut(this.Title, Application.ExecutablePath); } } catch (Exception) { } //throw new NotImplementedException(); }
private void MainForm_LoadError(object sender, NetDimension.NanUI.Browser.LoadErrorEventArgs e) { try { if (e.ErrorText == "ERR_ABORTED") { return; } // Display a load error message. //var errorBody = string.Format("<html><body bgcolor=\"white\"><h2>Failed to load URL {0} with error {1} ({2}).</h2></body></html>", // e.FailedUrl, e.ErrorText, e.ErrorCode); //e.Frame.LoadStringForUrl(errorBody, e.FailedUrl); if (e.FailedUrl == Wnconfig.GetUrl()) { string strmsg = string.Format("网址{0}\n无法打开\n原因:【{1}】,是否刷新重试?", e.FailedUrl.Replace("?fromCustormBrowser=1", ""), e.ErrorText); if ((MessageBox.Show(strmsg, "信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)) { Thread thread = new Thread(() => { try { delRestart(); } catch (Exception ex) { } }); //thread.SetApartmentState(ApartmentState.STA); thread.Start(); this.Close(true); return; } else { this.Close(true); } } else { string strmsg = string.Format("【{0}】\n网址无法打开\n原因:【{1}】", e.FailedUrl.Replace("?fromCustormBrowser=1", ""), e.ErrorText); MessageBox.Show(strmsg, e.ErrorText, MessageBoxButtons.OK, MessageBoxIcon.Stop); } } catch (Exception) { } //throw new NotImplementedException(); }
private JavaScriptValue UpdateWnBrowerUrlIp(Formium owner, JavaScriptValue[] arguments) { if (!Wnconfig.GetGrayFlag()) { return(JavaScriptValue.CreateString("启动灰度地址失败! 已经在配置文件WinningBrowserApp.config中已经禁用灰度更新")); } if (arguments.Length == 0) { return(JavaScriptValue.CreateString("启动灰度地址失败!未传Ip参数")); } if (arguments.Length > 0) { var strNewIp = arguments[0].GetString(); var strUserid = "无用户名"; var strPw = "无密码"; if (arguments.Length > 1) { strUserid = arguments[1].GetString(); strPw = arguments[2].GetString(); } if (!string.IsNullOrEmpty(strNewIp) && !Wnconfig.GetUrl().Contains(strNewIp)) { string strGrayIp = strNewIp; MessageBox.Show(string.Format("启用灰度地址:{0}", strGrayIp)); string msgresault = Wnconfig.SetUrlIp(strGrayIp, strUserid, strPw, true); if (msgresault.Contains("失败")) { return(JavaScriptValue.CreateString(msgresault)); } Thread thread = new Thread(() => { try { MainForm.delRestart(); } catch (Exception ex) { } }); //thread.SetApartmentState(ApartmentState.STA); thread.Start(); return(JavaScriptValue.CreateString("启动灰度地址成功(UpdateWnBrowerUrlIp)")); } } return(JavaScriptValue.CreateString("启动灰度地址失败!")); }
static void Main(string[] args) { #if NETCOREAPP3_1 || NET5_0 Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); #endif //bool createNew; //using (System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out createNew)) //{ // if (!createNew) // { // MessageBox.Show("只能运行一个实例!"); // return; // } //} //MessageBox.Show("只能运行一个实例!"); Application.ThreadException -= new ThreadExceptionEventHandler(Application_ThreadException); Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); AppDomain.CurrentDomain.UnhandledException -= new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); //MainForm mfrm = null; WinFormium.CreateRuntimeBuilder(env => { // You should do some initializing staffs of Cef Environment in this function. env.CustomCefCommandLineArguments(cmdLine => { // // Configure command line arguments of Cef here. // //cmdLine.AppendSwitch("disable-gpu"); // //cmdLine.AppendSwitch("disable-gpu-compositing"); //cmdLine.AppendSwitch("disable-web-security"); //cmdLine.AppendSwitch("unsafely-treat-insecure-origin-as-secure", Wnconfig.GetUrl()); //cmdLine.AppendSwitch("enable-media-stream", "1"); // //cmdLine.AppendSwitch("disable-gpu-watchdog"); // //cmdLine.AppendSwitch("disable-gpu-shader-disk-cache"); // //cmdLine.AppendSwitch("no-crash-upload"); // //cmdLine.AppendSwitch("disable-breakpad"); // //--disk-cache-size=xxx // //cmdLine.AppendSwitch("disk-cache-size", "1"); // //if (!Environment.Is64BitProcess) // //{ // // //MessageBox.Show("设置内存"); // // cmdLine.AppendArgument("max-old-space-size=1000"); // // } cmdLine.AppendSwitch("ignore-certificate-errors"); cmdLine.AppendSwitch("disable-web-security"); cmdLine.AppendSwitch("unsafely-treat-insecure-origin-as-secure", Wnconfig.GetUrl()); //args.AppendSwitch("enable-media-stream"); cmdLine.AppendSwitch("enable-media-stream", "1"); cmdLine.AppendSwitch("enable-print-preview"); cmdLine.AppendSwitch("autoplay-policy", "no-user-gesture-required"); cmdLine.AppendSwitch("--disable-web-security", "1"); //关闭同源策略,允许跨域 cmdLine.AppendSwitch("--disable-site-isolation-trials", "1"); //关闭站点隔离策略,允许跨域 cmdLine.AppendSwitch("disable-web-security", "1"); //关闭同源策略,允许跨域 cmdLine.AppendSwitch("disable-site-isolation-trials", "1"); //关闭站点隔离策略,允许跨域 }); env.CustomCefSettings(settings => { //MessageBox.Show(settings.CachePath); // Configure default Cef settings here. //settings.WindowlessRenderingEnabled = true; //settings. //settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"; }); env.CustomDefaultBrowserSettings(cefSettings => { cefSettings.ApplicationCache = Xilium.CefGlue.CefState.Disabled; //cefSettings.ApplicationCache= Xilium.CefGlue.CefState.Disabled; // cefSettings.WebSecurity = Xilium.CefGlue.CefState.Disabled; // Configure default browser settings here. }); }, app => { #if DEBUG // Use this setting if your application running in DEBUG mode, it will allow user to open or clode DevTools by right-clicking mouse button and selecting menu items on context menu. //app.UseDebuggingMode(); #endif app.UseLocalFileResource("http", "demo.app.local", "asserts"); app.RegisterJavaScriptExtension(() => new WinningBrowerWindowExtension()); // Clear all cached files such as cookies, histories, localstorages, etc. if (args != null && args.Length > 0 && args[0] == "DeleteCache") { //RunServiceProxy.InvokProxy(); app.ClearCacheFile(); } Thread.Sleep(600); //var thisProcess = Process.GetCurrentProcess(); //if (Process.GetProcessesByName(thisProcess.ProcessName).Length == 1) //{ // if (Process.GetProcessesByName(thisProcess.ProcessName)[0].Id != thisProcess.Id) // { // Process.GetProcessesByName(thisProcess.ProcessName)[0].Kill(); // } //} app.UseSingleInstance(() => { //MessageBox.Show("只能运行一个程序"); RunServiceProxy.SetWebAppFrmFront(); return; }); // Set a main window class inherit Formium here to start appliation message loop. app.UseMainWindow(context => { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); ShortCutHelper.SetWinningBrowerShortcut(Wnconfig.GetShortName(), Application.ExecutablePath); // context.MainForm = new Form(); //Xilium.CefGlue.CefRuntime.AddCrossOriginWhitelistEntry("*", "http", "*", true); //mfrm= new MainForm(); TaskCompletionSource <object> source = new TaskCompletionSource <object>(); Thread thread = new Thread(() => { try { RunServiceProxy.InvokProxy(); source.SetResult("启动成功"); } catch (Exception ex) { source.SetException(ex); } }); //thread.SetApartmentState(ApartmentState.STA); thread.Start(); AutoUpdate(); return(new MainForm()); }); }) // Build the NanUI runtime .Build() // Run the main process .Run(); }