Windows 顯示器擴展和分辨率更改

最近研究了一下window下顯示器的擴展和屏幕分辨率的修改 ,做一個記錄。

修改分辨率和擴展顯示器主要有兩種方法:

一、用ChangeDisplaySettingsEx來實現

1、EnumDisplayDevices 枚舉所有的顯示器信息,過濾後進行保存

2、EnumDisplaySettings 再次檢查顯示器分辨率是否支持

3、ChangeDisplaySettingsEx 根據DEVMODE的不同配置來設置顯示器爲主顯示器、擴展、分辨率

 

可以設置擴展所有屏幕,因爲需要。只擴展了Nvida顯卡,並且斷開了Intel的顯卡。

源碼地址:僅用Windows自動API實現 編譯版本VS2013

 

 

二、在nvidia顯卡的狀況下使用nvapi來實現,目前用到NvApi版本是nvapi-r337

1、NvAPI_EnumLogicalGPUs 枚舉所有的邏輯GPU

2、NvAPI_GetPhysicalGPUsFromLogicalGPU拿到物理GPU

3、NvAPI_GPU_GetAllDisplayIds拿到顯示器的所有信息(需要兩次獲取)

4、NvAPI_DISP_SetDisplayConfig根據stConnectedGPUDisplayInfo的參數來設置顯示器         主要是進行顯示器的擴展

5、NvAPI_DISP_GetDisplayConfig 拿到顯示器的信息   改邊stConnectedGPUDisplayInfo參數 再NvAPI_DISP_SetDisplayConfig         設置分辨率

 

主要用到的函數是NvAPI_DISP_SetDisplayConfig,必須要Nvapi庫

NvApi設置屏幕分辨率和擴展模式 需要nvapi.lib

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章