コード例 #1
0
        /// <summary>
        /// 截一张图用作识别
        /// </summary>
        private void getPicture()
        {
            IntPtr hWnd   = WindowsAPI.FindWindow(null, "夜神模拟器");
            IntPtr hscrdc = WindowsAPI.GetWindowDC(hWnd);

            System.Drawing.Rectangle rect = new System.Drawing.Rectangle();
            WindowsAPI.GetWindowRect(hWnd, out rect);
            System.Drawing.Bitmap bmp = null;
            if (Config.ScreenMode == ScreenMode.Window)
            {
                IntPtr hbitmap = WindowsAPI.CreateCompatibleBitmap(hscrdc, rect.Width, rect.Height);
                IntPtr hmemdc  = WindowsAPI.CreateCompatibleDC(hscrdc);
                WindowsAPI.SelectObject(hmemdc, hbitmap);
                WindowsAPI.PrintWindow(hWnd, hmemdc, 0);
                bmp = System.Drawing.Bitmap.FromHbitmap(hbitmap);
                WindowsAPI.DeleteDC(hmemdc);
            }
            else if (Config.ScreenMode == ScreenMode.Desktop)
            {
                bmp = WindowsAPI.GetDesktop(rect);
            }
            if (File.Exists(TempImages.OrigImagePath))
            {
                File.Delete(TempImages.OrigImagePath);
            }
            if (bmp != null)
            {
                bmp.Save(TempImages.OrigImagePath);

                bmp.Dispose();
                bmp = null;
            }
            WindowsAPI.DeleteDC(hscrdc);
        }
コード例 #2
0
 /// <summary>
 /// 启动匹配程序
 /// </summary>
 public static void Start()
 {
     windowHand = WindowsAPI.FindWindow(null, "夜神模拟器");
     windowDC   = WindowsAPI.GetWindowDC(windowHand);
     WindowsAPI.GetWindowRect(windowHand, out rect);
     bitmapHand = WindowsAPI.CreateCompatibleBitmap(windowDC, rect.Width, rect.Height);
     bitmapDC   = WindowsAPI.CreateCompatibleDC(windowDC);
 }