Ejemplo n.º 1
0
        private async void button1_Click(object sender, EventArgs e)
        {
            using (var browserView = new WinFormsBrowserView())
            {
                var browser = browserView.Browser;
                ManualResetEvent xWaitEvent = new ManualResetEvent(false);

                browser.FinishLoadingFrameEvent += delegate(object s, FinishLoadingEventArgs eventArgs)
                {
                    //Console.Out.WriteLine("FinishLoadingFrame: URL = " + e.ValidatedURL + ", IsMainFrame = " + e.IsMainFrame);
                    if (eventArgs.IsMainFrame)
                    {
                        Console.Out.WriteLine("========================== READY ======================");
                        xWaitEvent.Set();
                    }
                };

                await browser.OpenUrl("https://www.footlocker.com/product/fila-disruptor-ii-mens/00705422.html", xWaitEvent);

                bool isAddToCartAvaialble = browser.IsAddToCartButtonAvailable(xWaitEvent);

                var styles = browser.ProductStyles(xWaitEvent);
                styles[1].Click();

                var sizes = browser.AvailableSizes(xWaitEvent);
                sizes[1].Click();

                browser.AddToCart();

                var result = await browser.NavigateGuestCheckout(xWaitEvent);

                MessageBox.Show(result.ToString());
            }
        }
Ejemplo n.º 2
0
        public BrowserForm(string url, int height = 800, int width = 1100, string initialState = "{}")
        {
            // InitializeComponent();

            this.Height = height;
            this.Width = width;
            browser = BrowserFactory.Create(BrowserType.LIGHTWEIGHT);
            
            BrowserView = new WinFormsBrowserView(browser);
            ManualResetEvent waitEvent = new ManualResetEvent(false);
            BrowserView.DocumentLoadedInMainFrameEvent += delegate (object sender, LoadEventArgs e)
            {
                waitEvent.Set();
            };

            BrowserView.Dock = DockStyle.Fill;
            Controls.Add(BrowserView);
            BrowserView.Browser.LoadURL(url);
            waitEvent.WaitOne();
            Del handler = CloseWindow;

            BrowserView.ScriptContextCreated += delegate (object sender, ScriptContextEventArgs e)
            {
                jsStateValue = browser.ExecuteJavaScriptAndReturnValue("window");
                jsStateValue.AsObject().SetProperty("UiBrowserState", new UiBrowserState(handler, initialState));

            };
            // Dispose Browser instance.
            //BrowserView.Dispose();

        }
Ejemplo n.º 3
0
        public static Tab CreateTab(String url)
        {
            Browser     browser     = BrowserFactory.Create(BrowserType);
            BrowserView browserView = new WinFormsBrowserView(browser);

            browser.DialogHandler      = new WinFormsDefaultDialogHandler((Control)browserView);
            browser.DownloadHandler    = new WinFormsDefaultDownloadHandler((Control)browserView);
            browser.ContextMenuHandler = new WinFormsDefaultContextMenuHandler((Control)browserView, true);
            browser.Preferences.FireKeyboardEventsEnabled = false;
            browser.Preferences.FireMouseEventsEnabled    = false;

            TabContent tabContent = new TabContent(browserView);

            TabCaption tabCaption = new TabCaption();

            tabCaption.SetTitle("about:blank");

            tabContent.PropertyChangeEvent += delegate(string propertyName,
                                                       object oldValue, object newValue)
            {
                tabCaption.SetTitle(newValue.ToString());
            };

            browserView.Browser.LoadURL(url);
            return(new Tab(tabCaption, tabContent));
        }
Ejemplo n.º 4
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            this.Controls.Add((Control)browserView.GetComponent());

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument      document = e.Browser.GetDocument();
                    DOMSelectElement select   = (DOMSelectElement)document.GetElementById("select-tag");
                    select.Value = "opel";
                }
            };
            browserView.Browser.LoadHTML("<html><body><select id='select-tag'>\n" +
                                         "  <option value=\"volvo\">Volvo</option>\n" +
                                         "  <option value=\"saab\">Saab</option>\n" +
                                         "  <option value=\"opel\">Opel</option>\n" +
                                         "  <option value=\"audi\">Audi</option>\n" +
                                         "</select></body></html>");;
        }
Ejemplo n.º 5
0
        public VkPhoneConfirmForm(WebProxy proxy)
        {
            InitializeComponent();

            BrowserView browser = null;

            if (proxy != null)
            {
                var dataDir       = Path.GetFullPath("chromium-data");
                var contextParams = new BrowserContextParams(dataDir);
                var proxyRules    = "https=" + proxy.Address.Host + ":" + proxy.Address.Port;
                contextParams.ProxyConfig = new CustomProxyConfig(proxyRules);

                browser = new WinFormsBrowserView(
                    BrowserFactory.Create(
                        new BrowserContext(contextParams),
                        BrowserType.LIGHTWEIGHT));
            }
            else
            {
                browser = new WinFormsBrowserView();
            }

            wb = (Control)browser;
            this.Controls.Add(wb);
            wb.Dock = DockStyle.Fill;
            browser.Browser.LoadURL("https://vk.com");
        }
Ejemplo n.º 6
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            browserView.Browser.DialogHandler = new WinFormsDefaultDialogHandler((Control)browserView.GetComponent());

            this.Controls.Add((Control)browserView.GetComponent());

            DOMEventHandler domEvent = delegate(object sender, DOMEventArgs e)
            {
                DOMEventType eventType = e.Type;
                Console.Out.WriteLine("handleEvent = " + eventType);
            };


            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument document        = e.Browser.GetDocument();
                    DOMElement  documentElement = document.DocumentElement;
                    documentElement.AddEventListener(DOMEventType.OnClick | DOMEventType.OnMouseDown | DOMEventType.OnMouseUp | DOMEventType.OnKeyDown, domEvent, false);
                }
            };

            browserView.Browser.LoadURL("http://www.teamdev.com");
        }
Ejemplo n.º 7
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            browser.DialogHandler = new WinFormsDefaultDialogHandler((Control)browserView);

            this.Controls.Add((Control)browserView.GetComponent());

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument document = e.Browser.GetDocument();

                    DOMElement      link3Element = document.GetElementById("link3");
                    DOMEventHandler link3Event   = delegate(object domEventSender, DOMEventArgs domEventArgs)
                    {
                        if (domEventArgs.Type == DOMEventType.OnFocus)
                        {
                            Console.Out.WriteLine("link3 gets focus");
                        }
                        if (domEventArgs.Type == DOMEventType.OnBlur)
                        {
                            Console.Out.WriteLine("Remove focus from link3");
                        }
                    };
                    link3Element.AddEventListener(DOMEventType.OnFocus | DOMEventType.OnBlur, link3Event, false);


                    DOMElement elementFocused = null;
                    foreach (DOMElement element in document.GetElementsByTagName("a"))
                    {
                        Thread.Sleep(2000);
                        element.Focus();
                        elementFocused = element;
                    }

                    if (elementFocused != null)
                    {
                        Thread.Sleep(2000);
                        elementFocused.Blur();
                    }
                }
            };
            browserView.Browser.LoadHTML(@"<html>
                                                <body>
                                                    <a id='link1' href='#'>The link 1</a>
                                                    <a id='link2' href='#'>The link 2</a>
                                                    <a id='link3' href='#'>The link 3</a>
                                                    <script type='text/javascript'>
                                                        var link2 = document.getElementById('link2');
                                                        link2.addEventListener('focus', function () { console.log('link2 gets focus'); });
                                                        link2.addEventListener('blur', function () { console.log('Remove focus from link2'); });
                                                    </script>
                                                </body>
                                            </html>");
        }
Ejemplo n.º 8
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            browserView.Browser.DialogHandler = new WinFormsDefaultDialogHandler((Control)browserView.GetComponent());

            this.Controls.Add((Control)browserView.GetComponent());

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    Browser     myBrowser = e.Browser;
                    DOMDocument document  = myBrowser.GetDocument();
                    DOMElement  link      = document.GetElementById("button");
                    if (link != null)
                    {
                        link.Click();
                    }
                }
            };
            browserView.Browser.LoadHTML("<html><body><button id='button' " +
                                         "onclick=\"alert('Button has been clicked!');\">Click Me!</button>" +
                                         "</body></html>");
        }
        public Form1()
        {
            InitializeComponent();
            BrowserView browserView = new WinFormsBrowserView();

            Controls.Add((Control)browserView);
            browserView.Browser.LoadURL("http://www.youtube.com");
        }
Ejemplo n.º 10
0
        private void AboutDemo()
        {
            Form aboutDemo = new Form();

            aboutDemo.ShowIcon        = false;
            aboutDemo.Size            = new Size(380, 300);
            aboutDemo.Text            = "About Demo";
            aboutDemo.FormBorderStyle = FormBorderStyle.FixedDialog;
            aboutDemo.MaximizeBox     = false;
            aboutDemo.MinimizeBox     = false;
            aboutDemo.StartPosition   = FormStartPosition.CenterParent;

            String      strVersion  = Assembly.GetExecutingAssembly().GetName().Version.ToString();
            BrowserView browserView = new WinFormsBrowserView(BrowserFactory.Create(BrowserType.HEAVYWEIGHT));

            aboutDemo.Controls.Add((Control)browserView);

            string textAboutDemo = "<br>" + "<html><font face='Arial' size='2'>" +
                                   "<font size='5'>DotNetBrowser Demo</font><br><br>" +
                                   "<b>Version " + strVersion + "</b><br><br>" +
                                   "<base target='_blank'>" +

                                   "This application is created for demonstration purposes only.<br>" +
                                   "&copy; 2017 TeamDev Ltd. All rights reserved.<br><br>" +

                                   "Powered by <a color='#3d82f8' href='https://www.teamdev.com/dotnetbrowser' " +
                                   "style='text-decoration:none'>DotNetBrowser</a>. See " +
                                   "<a color='#3d82f8' href='https://www.teamdev.com/dotnetbrowser-licence-agreement' " +
                                   "style='text-decoration:none'>terms of use.</a><br>" +

                                   "Based on <a color='#3d82f8' href='http://www.chromium.org/' " +
                                   "style='text-decoration:none'>Chromium project</a>. " +
                                   "See <a color='#3d82f8' " +
                                   "href='http://dotnetbrowser-support.teamdev.com/documentation/open-source-components-licences' " +
                                   "style='text-decoration:none'>full list</a> of Chromium<br>components, " +
                                   "used in the current DotNetBrowser version.<br><br>" +

                                   "This demo uses WebKit project under LGPL.<br>" +

                                   "See licence text " +
                                   "<a color='#3d82f8' href='https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html' " +
                                   "style='text-decoration:none'>LGPL v.2</a> and " +
                                   "<a color='#3d82f8' href='https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html' " +
                                   "style='text-decoration:none'>LGPL v.2.1</a></font></html>";

            browserView.Browser.LoadHTML(textAboutDemo);

            aboutDemo.FormClosing += delegate
            {
                if (!browserView.Browser.IsDisposed())
                {
                    browserView.Browser.Dispose();
                    browserView.Dispose();
                }
            };

            aboutDemo.ShowDialog();
        }
Ejemplo n.º 11
0
 public Form1()
 {
     InitializeComponent();
     browserView = new WinFormsBrowserView();
     browserView.Browser.Context.NetworkService.ResourceHandler = new AjaxResourceHandler();
     browserView.Browser.Context.NetworkService.NetworkDelegate = new AjaxNetworkDelegate();
     Controls.Add(browserView);
     browserView.Browser.LoadURL("http://www.w3schools.com/xml/ajax_examples.asp");
 }
Ejemplo n.º 12
0
        public Form1()
        {
            InitializeComponent();
            BrowserView browserView   = new WinFormsBrowserView();
            Control     browserWindow = (Control)browserView;

            browserWindow.Dock = DockStyle.Fill;
            Controls.Add(browserWindow);
            browserView.Browser.FullScreenHandler = new SampleFullScreenHandler(this, browserView);
            string      addInFolder = Path.GetDirectoryName(typeof(Form1).Assembly.Location);
            BrowserForm browserForm = new BrowserForm(Path.Combine(addInFolder, "ui-build", @"index.html#/edit"), 800, 1100, {});
Ejemplo n.º 13
0
        private void createBrowserView()
        {
            this.browserView = new WinFormsBrowserView();
            this.browserView.Browser.CacheStorage.ClearCache();
            this.browserView.Browser.LoadURL(this.url);
            this.tabBrowserEvent = new TabBrowserEvent(this);

            this.browserView.Browser.TitleChangedEvent += delegate(object sender, TitleEventArgs e)
            {
                this.changeCaptionTitle(e.Title.ToString());
            };
        }
Ejemplo n.º 14
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            browser.ContextMenuHandler = new MyContextMenuHandler((Control)browserView);
            this.Controls.Add((Control)browserView.GetComponent());

            browser.LoadURL("http://www.google.com");
        }
 private void Slardar_Video_Downloader_Load(object sender, EventArgs e)
 {
     browserView = new WinFormsBrowserView();
     mainLayoutPanel.Controls.Add((Control)browserView);
     browserView.Dock = DockStyle.Fill;
     browserView.Browser.AudioMuted = true;
     browserView.Browser.Context.NetworkService.ResourceHandler = new SlardarResourceHandler("test.txt", this);
     browserView.Browser.LoadHandler = new SlardarLoaderHandler();
     browserView.Browser.LoadURL(urlTextBox.Text);
     current_url                 = urlTextBox.Text;
     urlTextBox.GotFocus        += URLTextBox_GotFocus;
     SniffComboBox.SelectedIndex = 0;
 }
            public WindowMain()
            {
                Browser browser = BrowserFactory.Create();

                browserView = new WinFormsBrowserView(browser);

                browser.FinishLoadingFrameEvent += Browser_FinishLoadingFrameEvent;

                this.Controls.Add(browserView);

                Width      = 1024;
                Height     = 768;
                this.Load += WindowMain_Loaded;
            }
Ejemplo n.º 17
0
        public Form1()
        {
            InitializeComponent();
            timer1.Interval = Properties.Settings.Default.IntervalOFForm1Timer;
            try
            {
                OpenFileDialog ob = new OpenFileDialog();
                ob.Title  = "Open URLs";
                ob.Filter = "Text Files (*.txt)|*.txt";
gothere:
                if (ob.ShowDialog() == DialogResult.OK)
                {
                    IEnumerable <string> url = File.ReadLines(ob.FileName);
                    urlList   = url.ToArray();
                    myBrowser = BrowserFactory.Create();
                    BrowserView myBrowserView = new WinFormsBrowserView(myBrowser);
                    this.Controls.Add((Control)myBrowserView);
                    myBrowser.LoadURL("http://activeterium.com/te3");
                    Registry.SetValue(proxyPath, "ProxyEnable", 1);

                    OpenFileDialog ob1 = new OpenFileDialog();
                    ob1.Title  = "Open Proxies";
                    ob1.Filter = "Text Files (*.txt)|*.txt";
gothere1:
                    if (ob1.ShowDialog() == DialogResult.OK)
                    {
                        IEnumerable <string> proxy = File.ReadLines(ob1.FileName);
                        proxyList = proxy.ToArray();
                        //timer1.Interval = 12000;
                        timer1.Start();
                    }
                    else
                    {
                        goto gothere1;
                        //Close();
                    }
                }
                else
                {
                    goto gothere;
                    //Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 18
0
        public Form1()
        {
            InitializeComponent();


            BrowserView browserView        = new WinFormsBrowserView();
            var         browserViewControl = (Control)browserView;

            _browser = browserView.Browser;
            browserViewControl.Dock = DockStyle.Fill;
            panel_browser_container.Controls.Add(browserViewControl);

            // Create Browser instance.
            // Register an event that will be fired when web page's frame has been completely loaded.
            _browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                //Console.Out.WriteLine("FinishLoadingFrame: URL = " + e.ValidatedURL + ", IsMainFrame = " + e.IsMainFrame);
                if (e.IsMainFrame)
                {
                    Console.Out.WriteLine("========================== READY ======================");
                    waitEvent.Set();
                }
            };
            ////// Register an event that will be fired when web page's frame has been started loading.
            ////_browser.StartLoadingFrameEvent += delegate (object sender, StartLoadingArgs e)
            ////{
            ////    Console.Out.WriteLine("StartLoadingFrame: URL = " + e.ValidatedURL + ", IsMainFrame = " + e.IsMainFrame);
            ////};
            ////// Register an event that will be fired when document of main frame has been completely loaded.
            ////_browser.DocumentLoadedInMainFrameEvent += delegate (object sender, LoadEventArgs e)
            ////{
            ////    Console.Out.WriteLine("DocumentLoadedInMainFrame");
            ////};

            _browser.CacheStorage.ClearCache(() =>
            {
                Console.WriteLine("The cache is cleared");
            });
            _browser.CacheStorage.ClearHttpAuthenticationCache(() =>
            {
                Console.WriteLine("The HTTP authentication data is cleared");
            });

            // _browser.OpenUrl("https://www.footlocker.com/product/fila-disruptor-ii-mens/00705422.html", waitEvent).Wait();
            //browserView.Browser.LoadURL("https://www.footlocker.com/product/fila-disruptor-ii-mens/00705422.html");
        }
Ejemplo n.º 19
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    // Press TAB key to set focus to text field.
                    KeyParams paramers = new KeyParams(VirtualKeyCode.TAB, ' ');
                    browser.KeyDown(paramers);
                    browser.KeyUp(paramers);

                    // Type 'Hello' text in the focused text field.
                    paramers = new KeyParams(VirtualKeyCode.VK_H, 'H');
                    browser.KeyDown(paramers);
                    browser.KeyUp(paramers);

                    paramers = new KeyParams(VirtualKeyCode.VK_E, 'e');
                    browser.KeyDown(paramers);
                    browser.KeyUp(paramers);

                    paramers = new KeyParams(VirtualKeyCode.VK_L, 'l');
                    browser.KeyDown(paramers);
                    browser.KeyUp(paramers);

                    paramers = new KeyParams(VirtualKeyCode.VK_L, 'l');
                    browser.KeyDown(paramers);
                    browser.KeyUp(paramers);

                    paramers = new KeyParams(VirtualKeyCode.VK_O, 'o');
                    browser.KeyDown(paramers);
                    browser.KeyUp(paramers);
                }
            };

            BrowserView browserView = new WinFormsBrowserView(browser);

            browserView.Browser.LoadHTML(@"<html><body><input type='text'></input></body></html>");

            this.Controls.Add((Control)browserView.GetComponent());
        }
Ejemplo n.º 20
0
        public Form1()
        {
            InitializeComponent();
            browser = BrowserFactory.Create();

            browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    JSValue value = browser.ExecuteJavaScriptAndReturnValue("window");
                    value.AsObject().SetProperty("Account", new Account());
                }
            };

            browser.LoadHTML(@"<!DOCTYPE html>
                                    <html>
                                    <head>
                                        <script type='text/javascript'>
                                              function sendFormData() {
                                                var firstNameValue = myForm.elements['firstName'].value;
                                                var lastNameValue = myForm.elements['lastName'].value;
                                                // Invoke the 'save' method of the 'Account' Java object.
                                                Account.Save(firstNameValue, lastNameValue);
                                              }
                                            </script>
                                    </head>
                                    <body>
                                    <form name='myForm'>
                                        First name: <input type='text' name='firstName'/>
                                        <br/>
                                        Last name: <input type='text' name='lastName'/>
                                        <br/>
                                        <input type='button' value='Save' onclick='sendFormData();'/>
                                    </form>
                                    </body>
                                    </html>");


            BrowserView browserView = new WinFormsBrowserView(browser);

            this.Controls.Add((Control)browserView.GetComponent());
        }
Ejemplo n.º 21
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            this.Controls.Add((Control)browserView.GetComponent());

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument document = e.Browser.GetDocument();
                    DOMElement  button   = document.GetElementById("button-id");
                    button.Children[0].NodeValue = "New Button Name";
                }
            };
            browserView.Browser.LoadHTML("<html><body><button id='button-id'>Button</button></body></html>");
        }
        private void toolStripUpload_Click(object sender, EventArgs e)
        {
            //Create new browser for rendering
            WinFormsBrowserView browserView1 = new WinFormsBrowserView(BrowserFactory.Create(BrowserType.LIGHTWEIGHT));
            Browser             browser      = browserView1.Browser;

            // #1 Set browser initial size
            browserView1.Browser.SetSize(1280, 1024);

            // #2 Load web page and wait until web page is loaded completely.
            ManualResetEvent          resetEvent = new ManualResetEvent(false);
            FinishLoadingFrameHandler listener   = new FinishLoadingFrameHandler((object sender1, FinishLoadingEventArgs e1) =>
            {
                if (e1.IsMainFrame)
                {
                    resetEvent.Set();
                }
            });

            browser.FinishLoadingFrameEvent += listener;
            try
            {
                browser.LoadURL(toolStripAddress.Text.ToString());
                resetEvent.WaitOne(new TimeSpan(0, 0, 45));
            }
            finally
            {
                browser.FinishLoadingFrameEvent -= listener;
            }

            // #3 Set the required document size.
            JSValue documentHeight = browserView1.Browser.ExecuteJavaScriptAndReturnValue(
                "Math.max(document.body.scrollHeight, " +
                "document.documentElement.scrollHeight, document.body.offsetHeight, " +
                "document.documentElement.offsetHeight, document.body.clientHeight, " +
                "document.documentElement.clientHeight);");
            JSValue documentWidth = browserView1.Browser.ExecuteJavaScriptAndReturnValue(
                "Math.max(document.body.scrollWidth, " +
                "document.documentElement.scrollWidth, document.body.offsetWidth, " +
                "document.documentElement.offsetWidth, document.body.clientWidth, " +
                "document.documentElement.clientWidth);");

            int scrollBarSize = 25;

            int viewWidth  = (int)documentWidth.GetNumber() + scrollBarSize;
            int viewHeight = (int)documentHeight.GetNumber() + scrollBarSize;

            // #4 Register OnRepaint to get notifications
            // about paint events. We expect that web page will be completely rendered twice:
            // 1. When its size is updated.
            // 2. When HTML content is loaded and displayed.
            //ManualResetEvent waitEvent = new ManualResetEvent(false);

            DrawingView drawingView = (DrawingView)browserView1.GetImage();

            browserView1.Browser.SetSize(viewWidth, viewHeight);
            // #5 Wait until Chromium renders web page content.
            //waitEvent.WaitOne();
            // #6 Save Image of the loaded web page into a PNG file.

            //Create Save file dialog
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter           = "PNG files (*.PNG)|*.PNG|All files (*.*)|*.*";
            saveFileDialog.FilterIndex      = 1;
            saveFileDialog.RestoreDirectory = true;

            //Choose path and name to save the file
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                //Format name of file
                string imageFileName = saveFileDialog.FileName.ToString().Replace("%.png%", "");
                browserView1.GetImage().Save(imageFileName, ImageFormat.Png);
            }
            if (!browser.IsDisposed())
            {
                browserView1.Dispose();
                browser.Dispose();
            }
        }
Ejemplo n.º 23
0
            public Window()
            {
                int viewHeight = 20000;

                // Disables GPU process and changes maximum texture size
                // value from default 16384 to viewHeight. The maximum texture size value
                // indicates the maximum height of the canvas where Chromium
                // renders web page's content. If the web page's height
                // exceeds the maximum texture size, the part of outsize the
                // texture size will not be drawn and will be filled with
                // black color.
                String[] switches =
                {
                    "--disable-gpu",
                    "--disable-gpu-compositing",
                    "--max-texture-size=" + viewHeight
                };
                BrowserPreferences.SetChromiumSwitches(switches);

                // #1 Create LIGHTWEIGHT Browser instance.
                browserView = new WinFormsBrowserView(BrowserFactory.Create(BrowserType.LIGHTWEIGHT));

                AutoSize     = true;
                AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
                //     Controls.Add(browserView);
                this.Load += delegate
                {
                    Browser browser = browserView.Browser;


                    // #1 Set browser initial size
                    browserView.Browser.SetSize(1280, 1024);

                    // #2 Load web page and wait until web page is loaded completely.
                    ManualResetEvent          resetEvent = new ManualResetEvent(false);
                    FinishLoadingFrameHandler listener   = new FinishLoadingFrameHandler((object sender, FinishLoadingEventArgs e) =>
                    {
                        if (e.IsMainFrame)
                        {
                            resetEvent.Set();
                        }
                    });
                    browser.FinishLoadingFrameEvent += listener;
                    try
                    {
                        browser.LoadURL("teamdev.com/dotnetbrowser");
                        resetEvent.WaitOne(new TimeSpan(0, 0, 45));
                    }
                    finally
                    {
                        browser.FinishLoadingFrameEvent -= listener;
                    }

                    // #3 Set the required document size.
                    JSValue documentHeight = browserView.Browser.ExecuteJavaScriptAndReturnValue(
                        "Math.max(document.body.scrollHeight, " +
                        "document.documentElement.scrollHeight, document.body.offsetHeight, " +
                        "document.documentElement.offsetHeight, document.body.clientHeight, " +
                        "document.documentElement.clientHeight);");
                    JSValue documentWidth = browserView.Browser.ExecuteJavaScriptAndReturnValue(
                        "Math.max(document.body.scrollWidth, " +
                        "document.documentElement.scrollWidth, document.body.offsetWidth, " +
                        "document.documentElement.offsetWidth, document.body.clientWidth, " +
                        "document.documentElement.clientWidth);");

                    int scrollBarSize = 25;

                    int viewWidth = (int)documentWidth.GetNumber() + scrollBarSize;
                    viewHeight = (int)documentHeight.GetNumber() + scrollBarSize;

                    var viewSize = new Size(viewWidth, viewHeight);

                    // #4 Register OnRedraw to get notifications
                    // about paint events. We expect that web page will be completely rendered twice:
                    // 1. When its size is updated.
                    // 2. When HTML content is loaded and displayed.
                    ManualResetEvent waitEvent   = new ManualResetEvent(false);
                    DrawingView      drawingView = (DrawingView)browserView.GetInnerView();
                    drawingView.OnRedraw += delegate(object sender, OnRedrawEventArgs e)
                    {
                        // Make sure that all view content has been repainted.
                        if (e.UpdatedRect.Size.Equals(viewSize))
                        {
                            // #6 Save Image of the loaded web page into a PNG file.
                            browserView.GetImage().Save(@"teamdev.png", ImageFormat.Png);
                            DialogResult = DialogResult.Cancel;
                        }
                    };
                    browserView.Browser.SetSize(viewWidth, viewHeight);
                };
            }