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); }
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 ?? ""; }