public static int Main(string[] args) { const bool simpleSubProcess = false; //Until https://bitbucket.org/chromiumembedded/cef/issues/1995/ is resolved it's nessicary to //deal with the spawning of the crashpad process here as it's not possible to configure which exe it uses //When running from within VS and using the vshost process you'll see an error in the log and this won't get called. var crashpadHandlerExitCode = Cef.ExecuteProcess(); //crashpadHandlerExitCode will be -1 for normal process execution, only when running as a subprocess will it be greater if (crashpadHandlerExitCode >= 0) { return(crashpadHandlerExitCode); } Cef.EnableHighDPISupport(); //NOTE: Using a simple sub processes uses your existing application executable to spawn instances of the sub process. //Features like JSB, EvaluateScriptAsync, custom schemes require the CefSharp.BrowserSubprocess to function if (simpleSubProcess) { var exitCode = Cef.ExecuteProcess(); if (exitCode >= 0) { return(exitCode); } #if DEBUG if (!System.Diagnostics.Debugger.IsAttached) { MessageBox.Show("When running this Example outside of Visual Studio" + "please make sure you compile in `Release` mode.", "Warning"); } #endif var settings = new CefSettings(); settings.BrowserSubprocessPath = "CefSharp.WinForms.Example.exe"; Cef.Initialize(settings); var browser = new SimpleBrowserForm(); Application.Run(browser); } else { #if DEBUG if (!System.Diagnostics.Debugger.IsAttached) { MessageBox.Show("When running this Example outside of Visual Studio" + "please make sure you compile in `Release` mode.", "Warning"); } #endif const bool multiThreadedMessageLoop = true; var browser = new BrowserForm(multiThreadedMessageLoop); //var browser = new SimpleBrowserForm(); //var browser = new TabulationDemoForm(); IBrowserProcessHandler browserProcessHandler; if (multiThreadedMessageLoop) { browserProcessHandler = new BrowserProcessHandler(); } else { //Get the current taskScheduler (must be called after the form is created) var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); browserProcessHandler = new WinFormsBrowserProcessHandler(scheduler); } CefExample.Init(osr: false, multiThreadedMessageLoop: multiThreadedMessageLoop, browserProcessHandler: browserProcessHandler); Application.Run(browser); } return(0); }
public static int Main(string[] args) { const bool simpleSubProcess = false; Cef.EnableHighDPISupport(); string externalDomain = "http://10.0.106.33:8081"; //NOTE: Using a simple sub processes uses your existing application executable to spawn instances of the sub process. //Features like JSB, EvaluateScriptAsync, custom schemes require the CefSharp.BrowserSubprocess to function if (simpleSubProcess) { var exitCode = Cef.ExecuteProcess(); if (exitCode >= 0) { return(exitCode); } #if DEBUG if (!System.Diagnostics.Debugger.IsAttached) { MessageBox.Show("When running this Example outside of Visual Studio" + "please make sure you compile in `Release` mode.", "Warning"); } #endif var settings = new CefSettings(); settings.BrowserSubprocessPath = "AgileBrowser.WinForms.exe"; Cef.Initialize(settings); var browser = new SimpleBrowserForm(externalDomain); Application.Run(browser); } else { #if DEBUG if (!System.Diagnostics.Debugger.IsAttached) { MessageBox.Show("When running this Example outside of Visual Studio" + "please make sure you compile in `Release` mode.", "Warning"); } #endif const bool multiThreadedMessageLoop = true; var browser = new BrowserForm(multiThreadedMessageLoop, externalDomain); //var browser = new SimpBrowserForm(externalDomain); //var browser = new TabulationDemoForm(externalDomain); IBrowserProcessHandler browserProcessHandler; if (multiThreadedMessageLoop) { browserProcessHandler = new BrowserProcessHandler(); } else { //Get the current taskScheduler (must be called after the form is created) var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); browserProcessHandler = new WinFormsBrowserProcessHandler(scheduler); } AgileBrowser.Init(osr: false, multiThreadedMessageLoop: multiThreadedMessageLoop, browserProcessHandler: browserProcessHandler, externalDomain: externalDomain); Application.Run(browser); } return(0); }
public static int Main(string[] args) { const bool simpleSubProcess = false; Cef.EnableHighDPISupport(); //NOTE: Using a simple sub processes uses your existing application executable to spawn instances of the sub process. //Features like JSB, EvaluateScriptAsync, custom schemes require the CefSharp.BrowserSubprocess to function if (simpleSubProcess) { var exitCode = Cef.ExecuteProcess(); if (exitCode >= 0) { return(exitCode); } #if DEBUG if (!System.Diagnostics.Debugger.IsAttached) { MessageBox.Show("When running this Example outside of Visual Studio " + "please make sure you compile in `Release` mode.", "Warning"); } #endif var settings = new CefSettings(); settings.BrowserSubprocessPath = "CefSharp.WinForms.Example.exe"; Cef.Initialize(settings); var browser = new SimpleBrowserForm(true); Application.Run(browser); } else { #if DEBUG if (!System.Diagnostics.Debugger.IsAttached) { MessageBox.Show("When running this Example outside of Visual Studio " + "please make sure you compile in `Release` mode.", "Warning"); } #endif //When multiThreadedMessageLoop = true then externalMessagePump must be set to false // To enable externalMessagePump set multiThreadedMessageLoop = false and externalMessagePump = true const bool multiThreadedMessageLoop = true; const bool externalMessagePump = false; var browser = new BrowserForm(multiThreadedMessageLoop); //var browser = new SimpleBrowserForm(multiThreadedMessageLoop); //var browser = new TabulationDemoForm(); IBrowserProcessHandler browserProcessHandler; if (multiThreadedMessageLoop) { browserProcessHandler = new BrowserProcessHandler(); } else { if (externalMessagePump) { //Get the current taskScheduler (must be called after the form is created) var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); browserProcessHandler = new ScheduleMessagePumpBrowserProcessHandler(scheduler); } else { //We'll add out WinForms timer to the components container so it's Diposed browserProcessHandler = new WinFormsBrowserProcessHandler(browser.Components); } } var settings = new CefSettings(); settings.MultiThreadedMessageLoop = multiThreadedMessageLoop; settings.ExternalMessagePump = externalMessagePump; CefExample.Init(settings, browserProcessHandler: browserProcessHandler); Application.Run(browser); } return(0); }
public static int Main(string[] args) { System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("es-419"); Application.ThreadException += new ExceptionHandler().ApplicationThreadException; AppDomain.CurrentDomain.UnhandledException += new ExceptionHandler().DomainUnhandledException; InitiateLogging(); Cef.EnableHighDPISupport(); //NOTE: Using a simple sub processes uses your existing application executable to spawn instances of the sub process. //Features like JSB, EvaluateScriptAsync, custom schemes require the CefSharp.BrowserSubprocess to function int exitCode = Cef.ExecuteProcess(); if (exitCode >= 0) { return(exitCode); } //var browser = new BrowserForm(multiThreadedMessageLoop); //var browser = new SimpleBrowserForm(); //var browser = new TabulationDemoForm(); //var browser = new ToolbarFormBrowser(); FormTabbedMDIBrowser browser = new FormTabbedMDIBrowser(); IBrowserProcessHandler browserProcessHandler; if (multiThreadedMessageLoop) { browserProcessHandler = new BrowserProcessHandler(); } else { //Get the current taskScheduler (must be called after the form is created) TaskScheduler scheduler = TaskScheduler.FromCurrentSynchronizationContext(); browserProcessHandler = new WinFormsBrowserProcessHandler(scheduler); } // cache path //To get the location the assembly normally resides on disk or the install directory string path = System.Reflection.Assembly.GetExecutingAssembly().CodeBase; string directory = Path.GetDirectoryName(path); string localpath = new Uri(directory).LocalPath; if (!Directory.Exists(localpath)) { Directory.CreateDirectory(localpath); } // need to make default/first cache folder localpath += "\\cachetab1"; if (!Directory.Exists(localpath)) { Directory.CreateDirectory(localpath); } CefSettings cefsetting = new CefSettings { MultiThreadedMessageLoop = multiThreadedMessageLoop, ExternalMessagePump = !multiThreadedMessageLoop, AcceptLanguageList = "es-419, es;q=0.8", Locale = "es", IgnoreCertificateErrors = true, UserAgent = userAgentWin10, CachePath = localpath, }; #if DEBUG cefsetting.LogSeverity = LogSeverity.Verbose; LogInfo("Running .exe Debug Version"); #else cefsetting.LogSeverity = LogSeverity.Error; #endif Cef.Initialize(cefsetting, true, browserProcessHandler: browserProcessHandler); Thread.Sleep(3000); //time to start Cef Application.Run(browser); LogInfo("shutdown..."); //Shutdown before your application exists or it will hang. Cef.Shutdown(); // save user settings Properties.User.Default.Save(); // close pending threats Environment.Exit(Environment.ExitCode); return(0); }