예제 #1
0
 void CaptureWindowThread()
 {
     while (true)
     {
         //if (bytelist.Count == 0)
         //{
         //    autosleeptime -= 2;
         //}
         //else
         //{
         //    autosleeptime += 2;
         //}
         //用于控制每间隔n毫秒执行一次截图
         if (CaptureTime.AddMilliseconds(Milliseconds) <= DateTime.Now)
         {
             CaptureTime = DateTime.Now;
             var   gsc    = new GdiScreenCapture();
             Image img1   = gsc.CaptureWindowSBS(desktopwidth, desktopheight);
             var   bimage = gsc.PhotoImageInsert(img1);
             bytelist.Add(bimage);
             img1.Dispose();
             img1 = null;
             Thread.Sleep(autosleeptime);
         }
         //else
         //{
         //    Thread.Sleep(autosleeptime);
         //}
     }
 }
예제 #2
0
        void Start()
        {
            //UnityEngine.UI.Image PlaneImage = GetComponent<UnityEngine.UI.Image>();
            m = gameObject.GetComponent <Renderer>().material;
            Screen.fullScreen = false;
            //桌面赋值
            sc = new GdiScreenCapture();
            Image desktopImage = sc.CaptureWindowUV(0, 0);

            desktopwidth       = desktopImage.Width;
            desktopheight      = desktopImage.Height;
            orgindesktopwidth  = desktopImage.Width;
            orgindesktopheight = desktopImage.Height;
            desktopImage.Dispose();
            desktopImage = null;
            Debug.Log("Start");

            //新建线程
            ct1 = new Thread(CaptureWindowThread);
            ct1.Start();
            ct2 = new Thread(CaptureWindowThread);
            ct2.Start();
            ct3 = new Thread(CaptureWindowThread);
            ct3.Start();
        }
예제 #3
0
        void Start()
        {
            gameObject.AddComponent <MeshFilter>();
            mesh = CreateArcSurface(g_threshold);
            this.GetComponent <MeshFilter>().mesh = mesh;
            m        = gameObject.GetComponent <Renderer>().material;
            m.shader = Shader.Find("Sprites/Default");

            Screen.fullScreen = false;
            //桌面赋值
            sc = new GdiScreenCapture();
            Image desktopImage = sc.CaptureWindowUV(0, 0);

            desktopwidth  = desktopImage.Width;
            desktopheight = desktopImage.Height;
            desktopImage.Dispose();
            desktopImage = null;

            //新建线程
            ct1 = new Thread(CaptureWindowThread);
            ct1.Start();
            //ct2 = new Thread(CaptureWindowThread);
            //ct2.Start();
            //ct3 = new Thread(CaptureWindowThread);
            //ct3.Start();
        }
예제 #4
0
 void CaptureWindowThread()
 {
     while (true)
     {
         var   gsc    = new GdiScreenCapture();
         Image img1   = gsc.CaptureWindowSBS(desktopwidth, desktopheight);
         var   bimage = gsc.PhotoImageInsert(img1);
         bytelist.Add(bimage);
         img1.Dispose();
         img1 = null;
         Thread.Sleep(20);
     }
 }