/// <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); }
/// <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); }