以程式設定Windows顯示設定
在Windows 7及更高版本中,使用者可以在控制台中調整顯示參數,例如文字大小。根據用戶偏好啟用或停用應用程式功能,存取這些設定非常有用。
能否以程式方式檢索這些顯示設定?
事實證明,graphics.DpiX
和 DeviceCap.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中文網其他相關文章!