Пример #1
0
        static void Main()
        {
#if NETCOREAPP3_1_OR_GREATER
            Application.SetHighDpiMode(HighDpiMode.PerMonitorV2);
#endif
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            WinFormium.CreateRuntimeBuilder(env =>
            {
                env.CustomCefSettings(settings =>
                {
                    // Sets this property to true, if you are attempting to use Layerd/Acrylic style.
                    settings.WindowlessRenderingEnabled = true;
                });

                env.CustomCefCommandLineArguments(commandLine =>
                {
                });
            }, app =>
            {
                app.UseDebuggingMode();

                app.UseEmbeddedFileResource("http", "res.app.local", "wwwroot");

                app.UseMainWindow(context => new MainWindow());
            }).Build().Run();
        }
Пример #2
0
        static void Main()
        {
#if NETCOREAPP3_1
            Application.SetHighDpiMode(HighDpiMode.PerMonitorV2);
#endif

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            WinFormium.CreateRuntimeBuilder(env =>
            {
                env.CustomCefSettings(settings =>
                {
                });

                env.CustomCefCommandLineArguments(commandLine =>
                {
                });
            }, app =>
            {
                app.UseEmbeddedFileResource("http", "www.app.local", "wwwroot");

                app.UseDataServiceResource("http", "api.app.local");

                //app.UseDebuggingMode();

                app.UseMainWindow(context => new MainWindow());
            }).Build().Run();
        }
Пример #3
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());

            WinFormium.CreateRuntimeBuilder(env =>
            {
                env.CustomCefSettings(settings =>
                {
                    // 在此处设置 CEF 的相关参数
                });

                env.CustomCefCommandLineArguments(commandLine =>
                {
                    // 在此处指定 CEF 命令行参数
                });
            }, app =>
            {
                //注册嵌入ZIP程序集资源处理器
                app.UseZippedResource("http", "archive.app.local", () => new MemoryStream(Properties.Resources.dist));
                // 指定启动窗体
                app.UseMainWindow(context => new MainWindow());
            })
            .Build()
            .Run();
        }
Пример #4
0
        static void Main()
        {
#if NETCOREAPP3_1_OR_GREATER
            Application.SetHighDpiMode(HighDpiMode.PerMonitorV2);
#endif
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            WinFormium.CreateRuntimeBuilder(env =>
            {
                env.CustomCefSettings(settings =>
                {
                });

                env.CustomCefCommandLineArguments(commandLine =>
                {
                });
            }, app =>
            {
                app.UseDebuggingMode();

                app.UseMainWindow(context => new MainWindow());
            }).Build().Run();
        }
Пример #5
0
        static void Main()
        {
#if NETCOREAPP3_1_OR_GREATER
            Application.SetHighDpiMode(HighDpiMode.PerMonitorV2);
#endif

            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");
                });

                env.CustomCefSettings(settings =>
                {
                    // Configure default Cef settings here.
                    settings.WindowlessRenderingEnabled = true;
                });

                env.CustomDefaultBrowserSettings(cefSettings =>
                {
                    // Configure default browser settings here.
                });
            },
                                            app =>
            {
                // You can configure your application settings of NanUI here.
#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

                // Use this setting if you want only one instance can be run.
                app.UseSingleInstance(() =>
                {
                    MessageBox.Show("Instance has already run, only one instance can be run.", "Single Instance", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                });

                // Register JavaScript Extension by using this method. More info about JavaScript Extension please see the JavaScript Extension chapter in documentation of NanUI.
                app.RegisterJavaScriptExtension(() => new DemoWindowJavaScriptExtension());

                // Clear all cached files such as cookies, histories, localstorages, etc.
                app.ClearCacheFile();

                app.UseEmbeddedFileResource("http", "main.app.local", "wwwroot");

                // Register LocalFileResource handler which can handle the file resources in local folder.
                app.UseLocalFileResource("http", "static.app.local", System.IO.Path.Combine(Application.StartupPath, "LocalFiles"));

                // Register UseZippedResource handler which can handle the resources zipped in archives.
                // Use the following method to load zip file in Resource file of current assembly.
                app.UseZippedResource("http", "acrylic.example.local", () => new System.IO.MemoryStream(Properties.Resources.AcrylicDemoResource));

                // Or use the code below to load zip file from disk.
                app.UseZippedResource("http", "layered.example.local", System.IO.Path.Combine(Application.StartupPath, "LayeredDemoResource.zip"));

                // Register DataServiceResource handler which can process http request and return data to response.
                // It will find all DataServices in current assembly automatically or you can indicate where to find the DataServices by using the third parameter.
                app.UseDataServiceResource("https", "api.app.local");;

                // Set a main window class inherit Formium here to start appliation message loop.
                app.UseMainWindow(context =>
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);

                    // You should return a Formium instatnce here or you can use context.MainForm property to set a Form which does not inherit Formium.

                    // context.MainForm = new Form();

                    return(new MainForm());
                });

                // If your application doesn't have a main window such as VSTO applicaitons, you could use this to initialize NanUI and CEF.
                //app.UseApplicationContext(() => new ApplicationContext());
            })
            // Build the NanUI runtime
            .Build()
            // Run the main process
            .Run();
        }
Пример #6
0
        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();
        }