>백엔드 개발 >C++ >C#에서 Windows 디스플레이 배율 인수를 프로그래밍 방식으로 검색하는 방법은 무엇입니까?

C#에서 Windows 디스플레이 배율 인수를 프로그래밍 방식으로 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-15 12:10:43500검색

How to Programmatically Retrieve Windows Display Scaling Factor in C#?

C#에서 Windows 디스플레이 설정에 액세스

Windows 7 이상 버전에서는 사용자가 텍스트 및 UI 요소 크기를 조정할 수 있는 제어판 설정을 제공합니다. C# 개발자는 동적 애플리케이션 동작을 위해 이 설정을 검색해야 하는 경우가 많습니다.

실용적인 솔루션

graphics.DpiXDeviceCap.LOGPIXELSX을 직접 사용하면 실제 배율에 관계없이 예기치 않게 고정 값(96 DPI)이 반환됩니다. 배율 인수를 정확하게 결정하려면 다른 접근 방식이 필요합니다.

<code class="language-csharp">[DllImport("gdi32.dll")]
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);

public enum DeviceCap
{
    VERTRES = 10,
    DESKTOPVERTRES = 117
}

private float GetScalingFactor()
{
    using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
    {
        IntPtr desktop = g.GetHdc();
        int logicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
        int physicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
        g.ReleaseHdc(desktop);
        return (float)physicalScreenHeight / logicalScreenHeight; // e.g., 1.25 for 125% scaling
    }
}</code>

이 코드 스니펫은 GetDeviceCaps을 활용하여 논리적 및 물리적 화면 높이를 비교하고 정확한 배율 인수를 제공합니다. 예를 들어 1.25라는 결과는 125% 확장 수준을 나타냅니다.

위 내용은 C#에서 Windows 디스플레이 배율 인수를 프로그래밍 방식으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.