示例#1
0
文件: Comm.cs 项目: code-mtnit/WPFSM
        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 });
        }
示例#2
0
 /// <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);
         }
     }
 }