1
好吧,我知道有這個問題類似的線程,但沒有人真正適合我的情況:獲取計算機推薦的分辨率代碼
如果我去我的桌面上,點擊屏幕分辨率,我有一個建議分辨率的菜單。我想從代碼(C#)得到它。
我的代碼看起來是這樣的:
public static Size GetOptimalScreenResolution()
{
var scope = new System.Management.ManagementScope();
var query = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");
UInt32 maxHResolution = 0;
UInt32 maxVResolution = 0;
using (var searcher = new System.Management.ManagementObjectSearcher(scope, query))
{
var results = searcher.Get();
foreach (var item in results)
{
if ((UInt32)item["HorizontalResolution"] > maxHResolution)
maxHResolution = (UInt32)item["HorizontalResolution"];
if ((UInt32)item["VerticalResolution"] > maxVResolution)
maxVResolution = (UInt32)item["VerticalResolution"];
}
}
return new Size(maxHResolution, maxVResolution);
}
在我的桌面,推薦分辨率爲1680 X 1050。 什麼這個方法返回的是1680 X 1280 這意味着,推薦分辨率是沒有必要的最大的一個水平和垂直。如何獲得1680 X 1050的價值?謝謝!
首先有一個(至少在邏輯電平)的問題在你上面的邏輯,你基本上假設,通過尋找最大水平和垂直分辨率_seperately_,如果一個顯示器可以支持X * Y和A * B,它也可以支持X * B和A * Y,可能並非如此... – tolanj 2015-02-09 10:07:16
非常好的一點。沒有像1680 X 1280這樣的分辨率。將解決它並更新你。謝謝! – DimaK 2015-02-09 10:22:04
我只想在你的循環中使用maxRes = hRes * vRes並存儲h和v。儘管如此我仍然無法看到建議的資源(這並不是說我沒有找不到正確的位置)。 – tolanj 2015-02-09 10:26:43