tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 選択可能な画面解像度の取得
投稿日: 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 メソッドで列挙する手もあります。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。