Exemplo n.º 1
0
        public override ScreenshotsData GetProcessedData(ProcessedDataPackage state)
        {
            ScreenshotsDumpFilesInfo pdfi = new ScreenshotsDumpFilesInfo(state);

            FileInfo[] fi = pdfi.GetFiles();

            ScreenshotsData sd = new ScreenshotsData();

            if (fi == null || fi.Length == 0)
            {
                return(sd);
            }

            foreach (FileInfo f in fi)
            {
                sd.Add(new Screenshot(f.FullName));
            }

            sd.FilenameStructure = ScreenshotsDumpFilesInfo.ScreenShotsFilePattern;

            return(sd);
        }
Exemplo n.º 2
0
        public override bool IsDataExists(ProcessedDataPackage state)
        {
            ScreenshotsDumpFilesInfo pdfi = new ScreenshotsDumpFilesInfo(state);

            return(pdfi.FilesCount() > 0);
        }
Exemplo n.º 3
0
        private void TakeScreenshot(string cmdId, string args)
        {
            if (this.browser == null || this.browser.MainHWND == IntPtr.Zero || this.browser.CanvasHWND == IntPtr.Zero)
            {
                return;
            }

            if (this.StartInfo == null || args == null)
            {
                return;
            }


            String[] argsarr = Regex.Split(args, "~");

            int width  = -1;
            int height = -1;

            if (argsarr == null || argsarr.Length == 0)
            {
                return;
            }

            String key = argsarr[0];

            if (argsarr.Length >= 3)
            {
                try { width = int.Parse(argsarr[1]); }
                catch { }
                try { height = int.Parse(argsarr[2]); }
                catch { }
            }

            bool maximize = true;

            if (argsarr.Length == 4)
            {
                try
                {
                    maximize = (int.Parse(argsarr[3]) == 1);
                }
                catch { }
            }

            Stream outs = new ScreenshotsDumpFilesInfo(this.StartInfo).Open(FileAccess.Write, key);

            if (outs != null)
            {
                Bitmap bm = ScreenGrabber.GrabScreen(browser.MainHWND, browser.CanvasHWND, maximize);

                if (bm != null)
                {
                    if (width != -1 && height != -1)
                    {
                        bm = ResizeBitmap(bm, width, height);
                    }
                    bm.Save(outs, ImageFormat.Jpeg);

                    try
                    {
                        bm.Dispose();
                    }
                    catch
                    {
                    }
                }
            }
        }