private static void ScreenCapture(Object cInfo1) { try { Bitmap img = null; while (CheckScreenCapture) { // = img = CaptureScreen.CaptureScreen.GetDesktopImage(); LastScreenCapture = ScreenCapturing.GetBytes(img); Thread.Sleep(SleepTime); } } catch { } //UpdateStatusDelegate UpdateStatus = new UpdateStatusDelegate(UpdateClientStatus); //this.Invoke(UpdateStatus, new object[] { ReplyDataObj, cInfo1 }); }
/// <summary> /// Método responsável pela captura das imagens /// O nome de imagem capturada é adiciona numa lista que, posteriormente, é percorrida para enviar as imagens para a pasta destino /// </summary> private void CreatePrintScreen() { Seq += 1; // Sequência ScreenCapturing.LegendData.FrameID = Seq; // Captura a tela Image[] imgList; if (sysConfig.Data.OneImagePerScreen) { imgList = ScreenCapturing.GetDesktopWindowCaptureAsBitmaps(); } else { // Captura uma única imagem para todos monitores imgList = new Image[1]; imgList[0] = ScreenCapturing.GetDesktopWindowCaptureAsBitmap(); } for (int i = 0; i < imgList.Length; i++) { Image tempImg = imgList[i]; try { // Nome do arquivo string fileToSave = Environment.UserName + DATA_DELIMITER + MACAddress + DATA_DELIMITER + Util.GetLocalIpAddress() + DATA_DELIMITER + string.Format("{0:yyyyMMdd_HH_mm_ss_fff}", internalClock) + DATA_DELIMITER + i.ToString() + sysConfig.Data.ExtImgFormat; // No do arquivo temporário (com path) string tempFullFileToSave = sysConfig.TempPath + fileToSave; // Adiciona assinatura com dados de segurança na imagem quando a imagem for PNG if ((sysConfig.Data.ImgFormat == ImageFormat.Png) && (sysConfig.Data.UseSignature)) { // Pabavra chave de segurança e identificação que é embutida na imagem string wordSecurity = UDYATSIGN + DATA_DELIMITER + sysConfig.Data.CustomerID.ToString() + DATA_DELIMITER + sysConfig.Data.CustomerMacNumber.ToString() + DATA_DELIMITER + FnvHash.GetHash(sysConfig.Data.CustomerWord, 120).ToHexString() + DATA_DELIMITER + sysConfig.MachineUniqueID + DATA_DELIMITER + fileToSave; // Esconde o texto na imagem (esteganografia) SteganographyHelper.embedText(wordSecurity, (Bitmap)tempImg); } // Salva o arquivo no Temp if (sysConfig.Data.ImgFormat == ImageFormat.Jpeg) { tempImg.Save(tempFullFileToSave, sysConfig.Data.ImageCodec, sysConfig.Data.EncoderParams); } else { tempImg.Save(tempFullFileToSave, sysConfig.Data.ImgFormat); } // Adiciona o arquivo na lista de arquivos que devem ser movidos if (sysConfig.Data.MoveImagesToTarget) { lock (filesToSend.SyncRoot) { filesToSend.Add(fileToSave); } } } catch (Exception ex) { Log.AddLog("Captura", ex.Message); } } }