タイトル | : Re: 選択可能な画面解像度の取得 |
記事No | : 9882 |
投稿日 | : 2010/02/17(Wed) 01:38 |
投稿者 | : 魔界の仮面弁士 |
> C#(.NET)2005です。 ここは VB.NET の掲示板ですよ。
> .NETでの選択可能な画面解像度の取得ですが > 調べましたが分かりませんでした。 VB の掲示板なので、あえて VB で回答するとこんな感じ。
Imports Microsoft.DirectX.Direct3D Public Class Form1 Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As EventArgs) Handles Button1.Click
ListBox1.BeginUpdate() For Each adp As AdapterInformation In Manager.Adapters With adp.Information ListBox1.Items.Add(String.Format("=== {0}, {1} ({2}) ===", _ .DeviceId, .DeviceName, .Description)) End With For Each mode As DisplayMode In adp.SupportedDisplayModes ListBox1.Items.Add(String.Format("{0,5:#,0} x {1,5:#,0} : {2}Hz : {3}", _ mode.Width, mode.Height, mode.RefreshRate, mode.Format)) Next Next ListBox1.EndUpdate()
End Sub End Class
C# での実装例は、たとえば下記にあります。参照設定を忘れずに。 http://www.atelier-blue.com/program/mdirectx/3d/3d02-05.htm
あとは関係あるかどうか確認していませんが…WMI の MSMonitorClass クラス近辺とか? http://msdn.microsoft.com/en-us/library/aa392399.aspx
> WinAPIを使うしかありませんでしょうか? API の場合には、EnumDisplaySettings を利用できます。
その他の手法としては、COM 版の DirectX 8 for Visual Basic Type Library から、 Direct3D8 の EnumAdapterModes メソッドで列挙する手もあります。
|