示例#1
0
        public static void Main()
        {
#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;
            CefExample.Init(false, multiThreadedMessageLoop: multiThreadedMessageLoop);

            if (multiThreadedMessageLoop == false)
            {
                //http://magpcss.org/ceforum/apidocs3/projects/%28default%29/%28_globals%29.html#CefDoMessageLoopWork%28%29
                //Perform a single iteration of CEF message loop processing.
                //This function is used to integrate the CEF message loop into an existing application message loop.
                //Care must be taken to balance performance against excessive CPU usage.
                //This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false.
                //This function will not block.

                Application.Idle += (s, e) => Cef.DoMessageLoopWork();
            }

            var browser = new BrowserForm();
            //var browser = new SimpleBrowserForm();
            //var browser = new TabulationDemoForm();
            Application.Run(browser);
        }
示例#2
0
        static void Main()
        {
            CefExample.Init();

            var browser = new BrowserForm();
            Application.Run(browser);
        }
示例#3
0
        static void Main()
        {
            ExamplePresenter.Init();

            var browser = new BrowserForm();
            Application.Run(browser);
        }
示例#4
0
        static void Main()
        {
            ExamplePresenter.Init();

            var browser = new BrowserForm();

            Application.Run(browser);
        }
示例#5
0
        static void Main()
        {
            CefExample.Init();

            var browser = new BrowserForm();

            Application.Run(browser);
        }
示例#6
0
        static void Main()
        {
            CefExample.Init();

            var browser = new BrowserForm();
            //var browser = new SimpleBrowserForm();
            //var browser = new TabulationDemoForm();
            Application.Run(browser);
        }
示例#7
0
        static void Main()
        {
            CefExample.Init();

            var browser = new BrowserForm();

            //var browser = new SimpleBrowserForm();
            //var browser = new TabulationDemoForm();
            Application.Run(browser);
        }
示例#8
0
        public static int Main(string[] args)
        {
            //if (!File.Exists("url.txt") || !File.Exists("proxy.txt"))
            //{
            //    MessageBox.Show("Please config files: url.txt, proxy.txt ");
            //    return 0;
            //}

            //if (string.IsNullOrWhiteSpace(File.ReadAllText("url.txt")) || string.IsNullOrWhiteSpace(File.ReadAllText("proxy.txt")))
            //{
            //    MessageBox.Show("Please input files: url.txt, proxy.txt. They must not be empty.");
            //    return 0;
            //}

            //if (!Directory.Exists(File.ReadAllLines("proxy.txt").Select(x=>x.Trim()).Where(x=>x.Length > 0).ToArray()[0]))
            //{
            //    MessageBox.Show("[proxy.txt] Cannot path: " + File.ReadAllLines("proxy.txt").Select(x => x.Trim()).Where(x => x.Length > 0).ToArray()[0]);
            //    return 0;
            //}

            Cef.EnableHighDPISupport();

            var browser = new BrowserForm(true);
            IBrowserProcessHandler browserProcessHandler = null;

            browserProcessHandler = new BrowserProcessHandler();

            var settings = new CefSettings();

            //settings.MultiThreadedMessageLoop = true;
            settings.ExternalMessagePump = false;

            //////// http://xxx.com/..
            //////string[] a = File.ReadAllText("url.txt").ToLower().Trim().Split('/');

            //////settings.RegisterScheme(new CefCustomScheme
            //////{
            //////    SchemeName = a[0].Substring(0, a[0].Length - 1),
            //////    DomainName = a[2].Split(':')[0],
            //////    SchemeHandlerFactory = new CefSharpSchemeHandlerFactory()
            //////});

            CefExample.Init(settings, browserProcessHandler: browserProcessHandler);

            Application.Run(browser);

            return(0);
        }
示例#9
0
        public static void Main()
        {
#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

            CefExample.Init();

            var browser = new BrowserForm();
            //var browser = new SimpleBrowserForm();
            //var browser = new TabulationDemoForm();
            Application.Run(browser);
        }
示例#10
0
        static void Main()
        {
            try
            {
                var path = Environment.GetEnvironmentVariable("Path");
                path = path + ";" + AdditionalPath;
                Console.Out.WriteLine(path);
                Environment.SetEnvironmentVariable("Path", path);
                AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;

                CefExample.Init();

                var browser = new BrowserForm();
                //var browser = new SimpleBrowserForm();
                //var browser = new TabulationDemoForm();
                Application.Run(browser);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
            }
        }
示例#11
0
文件: Program.cs 项目: klkn/CefSharp
        static void Main()
        {
            try
            {
                var path = Environment.GetEnvironmentVariable("Path");
                        path = path + ";" + AdditionalPath;
                        Console.Out.WriteLine(path);
                Environment.SetEnvironmentVariable("Path", path);
                        AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;

                CefExample.Init();

                var browser = new BrowserForm();
                //var browser = new SimpleBrowserForm();
                //var browser = new TabulationDemoForm();
                Application.Run(browser);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
            }
        }
示例#12
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();
                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;
                CefExample.Init(false, multiThreadedMessageLoop: multiThreadedMessageLoop);

                if (multiThreadedMessageLoop == false)
                {
                    //http://magpcss.org/ceforum/apidocs3/projects/%28default%29/%28_globals%29.html#CefDoMessageLoopWork%28%29
                    //Perform a single iteration of CEF message loop processing.
                    //This function is used to integrate the CEF message loop into an existing application message loop.
                    //Care must be taken to balance performance against excessive CPU usage.
                    //This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false.
                    //This function will not block.

                    Application.Idle += (s, e) => Cef.DoMessageLoopWork();
                }

                var browser = new BrowserForm();
                //var browser = new SimpleBrowserForm();
                //var browser = new TabulationDemoForm();
                Application.Run(browser);
            }

            return(0);
        }
示例#13
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();
                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;
                CefExample.Init(false, multiThreadedMessageLoop: multiThreadedMessageLoop);

                if (multiThreadedMessageLoop == false)
                {
                    //http://magpcss.org/ceforum/apidocs3/projects/%28default%29/%28_globals%29.html#CefDoMessageLoopWork%28%29
                    //Perform a single iteration of CEF message loop processing.
                    //This function is used to integrate the CEF message loop into an existing application message loop.
                    //Care must be taken to balance performance against excessive CPU usage.
                    //This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false.
                    //This function will not block. 

                    Application.Idle += (s, e) => Cef.DoMessageLoopWork();
                }

                var browser = new BrowserForm();
                //var browser = new SimpleBrowserForm();
                //var browser = new TabulationDemoForm();
                Application.Run(browser);
            }

            return 0;
        }
示例#14
0
        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;
        }
示例#15
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();
                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;
        }
示例#16
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);
        }
示例#17
0
        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);
        }
示例#18
0
 public FIRequestHandler(BrowserForm form)
 {
     this.form = form;
 }