Example #1
0
 private static void timer_Tick(object sender, EventArgs e)
 {
     if (AnalysisClass.ue != null)
     {
         if ((!AnalysisClass.isSingleAnalysis ? true : !AnalysisClass.ue.HasImage))
         {
             IntPtr intPtr = new IntPtr(UEViewer.FindWindow(null, "UE Viewer"));
             if ((intPtr == new IntPtr(0) ? false : !AnalysisClass.lostHandles.Contains(intPtr)))
             {
                 AnalysisClass.lostHandles.Add(intPtr);
                 Thread.Sleep(AnalysisClass.interval);
                 Graphics      graphic = Graphics.FromHwnd(intPtr);
                 UEViewer.RECT rECT    = new UEViewer.RECT();
                 UEViewer.GetWindowRect(intPtr, ref rECT);
                 int      right    = rECT.Right - rECT.Left;
                 int      bottom   = rECT.Bottom - rECT.Top;
                 Bitmap   bitmap   = new Bitmap(right - 16, bottom - 38, graphic);
                 Graphics graphic1 = Graphics.FromImage(bitmap);
                 IntPtr   hdc      = graphic.GetHdc();
                 IntPtr   hdc1     = graphic1.GetHdc();
                 UEViewer.BitBlt(hdc1, 0, 0, right - 16, bottom - 38, hdc, 0, 0, 13369376);
                 graphic.ReleaseHdc(hdc);
                 graphic1.ReleaseHdc(hdc1);
                 Bitmap   bitmap1  = new Bitmap(bitmap, right - 16, bottom - 38);
                 UEViewer uEViewer = AnalysisClass.ue;
                 string   str      = AnalysisClass.outputModelFolderName;
                 Guid     guid     = Guid.NewGuid();
                 uEViewer.TempFileName = Path.Combine(str, string.Concat(guid.ToString(), ".jpg"));
                 bitmap1.Save(AnalysisClass.ue.TempFileName, ImageFormat.Jpeg);
                 AnalysisClass.ue.HasImage = true;
                 if (!AnalysisClass.isSingleAnalysis)
                 {
                     UEViewer.SendMessageA(intPtr, 16, 0, 0);
                 }
             }
         }
         else
         {
             AnalysisClass.timer.Stop();
         }
     }
 }
Example #2
0
 internal static extern bool GetWindowRect(IntPtr hWnd, ref UEViewer.RECT lpRect);