Exemple #1
0
        //截图
        private void ButtonSubstrImg_Click(object sender, EventArgs e)
        {
            var    blinkBrowser1           = (BlinkBrowser)tabControl1.SelectedTab.Controls[0];
            IntPtr mainFrameId             = BlinkBrowserPInvoke.wkeWebFrameGetMainFrame(blinkBrowser1.handle);
            int    width                   = BlinkBrowserPInvoke.wkeGetContentWidth(blinkBrowser1.handle);
            int    height                  = BlinkBrowserPInvoke.wkeGetContentHeight(blinkBrowser1.handle);
            wkeScreenshotSettings settings = new wkeScreenshotSettings
            {
                height = height,
                width  = width
            };

            settings.structSize = System.Runtime.InteropServices.Marshal.SizeOf(settings);
            var bf = BlinkBrowserPInvoke.wkePrintToBitmap(blinkBrowser1.handle, mainFrameId, settings);

            if (bf != IntPtr.Zero)
            {
                var data = (wkeMemBuf)Marshal.PtrToStructure(bf, typeof(wkeMemBuf));
                if (data.data != IntPtr.Zero && data.length != 0)
                {
                    byte[] ys = new byte[data.length];
                    Marshal.Copy(data.data, ys, 0, ys.Length);

                    FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
                    if (folderBrowser.ShowDialog() == DialogResult.OK)
                    {
                        string fileName = Path.Combine(folderBrowser.SelectedPath, Guid.NewGuid().ToString("n") + ".bmp");
                        File.WriteAllBytes(fileName, ys);
                        MessageBox.Show("截图保存成功,图片地址为:" + fileName);
                    }
                }
                else
                {
                    MessageBox.Show("截图失败,数据解析失败。");
                }
            }
            else
            {
                MessageBox.Show("截图失败,返回空。");
            }
        }
Exemple #2
0
        private void button3_Click(object sender, EventArgs e)
        {
            IntPtr mainFrameId             = BlinkBrowserPInvoke.wkeWebFrameGetMainFrame(blinkBrowser1.handle);
            int    width                   = BlinkBrowserPInvoke.wkeGetContentWidth(blinkBrowser1.handle);
            int    height                  = BlinkBrowserPInvoke.wkeGetContentHeight(blinkBrowser1.handle);
            wkeScreenshotSettings settings = new wkeScreenshotSettings
            {
                height = height,
                width  = width
            };

            settings.structSize = System.Runtime.InteropServices.Marshal.SizeOf(settings);
            var bf = BlinkBrowserPInvoke.wkePrintToBitmap(blinkBrowser1.handle, mainFrameId, settings);

            if (bf != IntPtr.Zero)
            {
                var data = (wkeMemBuf)Marshal.PtrToStructure(bf, typeof(wkeMemBuf));
                if (data.data != IntPtr.Zero && data.length != 0)
                {
                    byte[] ys = new byte[data.length];
                    Marshal.Copy(data.data, ys, 0, ys.Length);

                    string fileName = Guid.NewGuid().ToString("n") + ".bmp";
                    System.IO.File.WriteAllBytes(fileName, ys);
                    MessageBox.Show("截图保存成功,图片地址为:" + Application.StartupPath + "\\" + fileName);
                }
                else
                {
                    MessageBox.Show("截图失败,数据解析失败。");
                }
            }
            else
            {
                MessageBox.Show("截图失败,返回空。");
            }
        }