首頁 > 後端開發 > C++ > 如何以程式設計方式擷取 Windows 顯示縮放設定?

如何以程式設計方式擷取 Windows 顯示縮放設定?

Mary-Kate Olsen
發布: 2025-01-15 10:43:49
原創
741 人瀏覽過

How Can I Programmatically Retrieve Windows Display Scaling Settings?

以程式設定Windows顯示設定

在Windows 7及更高版本中,使用者可以在控制台中調整顯示參數,例如文字大小。根據用戶偏好啟用或停用應用程式功能,存取這些設定非常有用。

能否以程式方式檢索這些顯示設定?

事實證明,graphics.DpiXDeviceCap.LOGPIXELSX 屬性在Surface Pro裝置上都會傳回一致的96值,而不管縮放等級為何。為了準確計算縮放因子,需要採用另一種方​​法。

一個有效的方法是利用gdi32.dll中的GetDeviceCaps函數。透過測量邏輯和實體螢幕高度,我們可以確定螢幕縮放因子。

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

    float ScreenScalingFactor = (float)PhysicalScreenHeight / (float)LogicalScreenHeight;

    return ScreenScalingFactor;
}</code>
登入後複製

透過呼叫此函數,我們可以準確地獲得螢幕縮放因子,從而能夠相應地調整應用程式行為。

以上是如何以程式設計方式擷取 Windows 顯示縮放設定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板