using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using DevExpress.XtraSplashScreen; using System.Threading; using System.Globalization; using DevExpress.UserSkins; using DevExpress.Skins; using DevExpress.LookAndFeel; using Lskj.Control; using Lskj.Control.Model; using Lskj.Main3.Model; using Lskj.Util; using Xilium.CefGlue; using System.Reflection; using System.IO; namespace Lskj.Main3 { static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main(string[] args) { CefRuntime.Load();//cef浏览器模块设置加载 var mainArgs = new CefMainArgs(args); var app = new DemoCefApp(); var settings = new CefSettings { MultiThreadedMessageLoop = true, LogSeverity = CefLogSeverity.Disable, LogFile = "CefGlue.log", Locale = "zh-CN" }; try { var Code = CefRuntime.ExecuteProcess(mainArgs, app, IntPtr.Zero); Console.WriteLine("CefRuntime.ExecuteProcess() returns {0}", Code); } catch (Exception ex) { } CefRuntime.Initialize(mainArgs, settings, app, IntPtr.Zero); try { // 汉化DevExpress界面 Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-Hans"); // 设置皮肤 BonusSkins.Register(); SkinManager.EnableFormSkins(); //处理未捕获的异常 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); if (!settings.MultiThreadedMessageLoop)//消息循环 { Application.Idle += (sender, e) => { CefRuntime.DoMessageLoopWork(); }; } AboutDevCompanion DC = new AboutDevCompanion(1, false); DC.Run(); //Application.Run(new CEFdemo.Form1()); // 启动程序 Manager.StartForm(); CefRuntime.Shutdown(); DC.Stop(); } catch (Exception ex) { MessageUtil.Show(ex); } } #region 浏览器处理类 /// /// 说明:浏览器处理类 /// 创建人:唐德馨 /// 创建日期:2022-1-26 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 internal sealed class DemoCefApp : CefApp { protected override void OnBeforeCommandLineProcessing(string processType, CefCommandLine commandLine) { Console.WriteLine("OnBeforeCommandLineProcessing: {0} {1}", processType, commandLine); // TODO: currently on linux platform location of locales and pack files are determined // incorrectly (relative to main module instead of libcef.so module). // Once issue http://code.google.com/p/chromiumembedded/issues/detail?id=668 will be resolved // this code can be removed. if (CefRuntime.Platform == CefRuntimePlatform.Linux) { var path = new Uri(Assembly.GetEntryAssembly().CodeBase).LocalPath; path = Path.GetDirectoryName(path); commandLine.AppendSwitch("resources-dir-path", path); commandLine.AppendSwitch("locales-dir-path", Path.Combine(path, "locales")); //commandLine.AppendSwitch("ppapi-flash-version", "19.0.0.185"); //commandLine.AppendSwitch("ppapi-flash-path", @"PepperFlash\pepflashplayer.dll"); } } } #endregion /// /// 说明:处理异常 /// 创建人:龚宇超 /// 创建日期:2017-11-22 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) { MessageUtil.Show(e.Exception); LogHelper.Instance.WriteError(e.Exception); } /// /// 说明:处理异常 /// 创建人:王一帆 /// 创建日期:2021-07-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject.ToString()); MessageUtil.Show(e.ExceptionObject.ToString()); } //public static Form GetForm() //{ // Form X = new CEFdemo.Form1(); // return X; //} } }