tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル選択可能な画面解像度の取得
記事No9876
投稿日: 2010/02/16(Tue) 16:16
投稿者miri
お世話になります。
C#(.NET)2005です。

.NETでの選択可能な画面解像度の取得ですが
調べましたが分かりませんでした。
(現在の画面解像度の取得はありましたが)
WinAPIを使うしかありませんでしょうか?

以上よろしくお願いします。

[ツリー表示へ]
タイトルRe: 選択可能な画面解像度の取得
記事No9877
投稿日: 2010/02/16(Tue) 17:18
投稿者Hongliang
今のところ .NET Framework 標準ライブラリでは提供されてませんね。

[ツリー表示へ]
タイトル解決
記事No9879
投稿日: 2010/02/16(Tue) 19:53
投稿者miri
ありがとうございました。

[ツリー表示へ]
タイトルRe: 解決
記事No9880
投稿日: 2010/02/16(Tue) 20:56
投稿者オショウ
> ありがとうございました。

  .NETには無いおうだけれど、一応参考まで・・・

  http://www.entiapage.com/souko/module/sample_display_vc.html

※ 中身は実行確認してません。

以上。

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

[ツリー表示へ]
タイトルRe^2: 選択可能な画面解像度の取得
記事No9883
投稿日: 2010/02/17(Wed) 07:58
投稿者オショウ
> Imports Microsoft.DirectX.Direct3D

  をを〜
  DirectXは、仕事的にもほぼ使わないので
  頭の中にありませんでした。

  確かにありましたネ!

以上。

[ツリー表示へ]