コード例 #1
0
        private string CaptureCurrentWindow(string applicationName, string windowName)
        {
            var path     = this.userpath + "\\Captures\\";
            var today    = DateTime.Now;
            var fileName = $"{_psName}_{today:yyyyMMddhhmmss}";

            Directory.CreateDirectory(path);
            String screenshotFilepath = Path.GetFullPath(Path.Combine(path, $"{fileName}.jpeg"));

            this.screenshotFilepath = screenshotFilepath;
            this.screenshotStruct   = new ScreenshotStruct(fileName, screenshotFilepath, null);           //screenshot doesn't exist yet, no sense in converting it to base64 now

            Task <string> screenshotPathTask = Task <string> .Run(() => ProcessInfo.CaptureActiveWindowScreenShot(path, fileName, applicationName, windowName));

            return(screenshotPathTask.Result);
        }
コード例 #2
0
        public Report(Event e, EventValues idt, string title, ScreenshotStruct screenshotStruct)
        {
            // todo: dynamic OS

            TimeStamp  = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            Id         = idt.entryId ?? "";
            UserName   = Environment.UserName;
            MacAddress =
                (
                    from nic in NetworkInterface.GetAllNetworkInterfaces()
                    where nic.OperationalStatus == OperationalStatus.Up
                    select nic.GetPhysicalAddress().ToString()
                ).FirstOrDefault();
            IPHostName = Dns.GetHostName();

            // get all ip addresses
            IPAddress[] addresses      = Dns.GetHostAddresses(IPHostName);
            ArrayList   addressStrings = new ArrayList();

            foreach (IPAddress ip in addresses)
            {
                addressStrings.Add(ip.ToString());
            }

            var ocrResult = Task <string> .Run(() => OcrEngine.asyncReadFromImage(screenshotStruct.ScreenshotFilePath));

            var base64Screenshot = Task <string> .Run(() => ScreenshotBase64Generator.JpegToBase64(screenshotStruct.ScreenshotFilePath));

            screenshotStruct.ScreenshotBase64String = base64Screenshot.Result;

            OS                     = "Windows";
            Process                = e.process ?? "";
            IPAddress              = JsonConvert.SerializeObject(addressStrings);
            Url                    = e.url ?? "";
            Title                  = title ?? "";
            Duration               = $"{idt.ts.Hours:00}:{idt.ts.Minutes:00}:{idt.ts.Seconds:00}";
            Idle                   = $"{idt.idle.Hours:00}:{idt.idle.Minutes:00}:{idt.idle.Seconds:00}";
            Active                 = $"{idt.active.Hours:00}:{idt.active.Minutes:00}:{idt.active.Seconds:00}";
            ScreenShotFileName     = screenshotStruct.ScreenshotFileName ?? "";
            ScreenShotBase64String = screenshotStruct.ScreenshotBase64String ?? "";
            ScreenShotOcrResult    = ocrResult.Result ?? "";
        }