|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using System;
- using System.Drawing;
- using System.Runtime.InteropServices;
-
- namespace ComeCapture.Helpers
- {
- public static class ScreenHelper
- {
- [DllImport("user32.dll", EntryPoint = "ReleaseDC")]
- public static extern IntPtr ReleaseDC(
- IntPtr hWnd,
- IntPtr hDc
- );
-
- [DllImport("gdi32.dll")]
- public static extern int GetDeviceCaps(
- IntPtr hdc, // handle to DC
- int nIndex // index of capability
- );
-
- public static System.Drawing.Size GetPhysicalDisplaySize()
- {
- Graphics g = Graphics.FromHwnd(IntPtr.Zero);
- IntPtr desktop = g.GetHdc();
- int physicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.Desktopvertres);
- int physicalScreenWidth = GetDeviceCaps(desktop, (int)DeviceCap.Desktophorzres);
- ReleaseDC(IntPtr.Zero, desktop);
- g.Dispose();
- return new System.Drawing.Size(physicalScreenWidth, physicalScreenHeight);
- }
-
- public enum DeviceCap
- {
- Desktopvertres = 117,
- Desktophorzres = 118
- }
-
- public static void ResetScreenScale()
- {
- using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
- {
- IntPtr desktop = g.GetHdc();
- int physicalScreenWidth = GetDeviceCaps(desktop, (int)DeviceCap.Desktophorzres);
- JieTuWindow.ScreenScale = physicalScreenWidth * 1.0000 / JieTuWindow.ScreenWidth;
- g.Dispose();
- }
- }
- }
- }
|