tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
画面の設定で選択可能な解像度の一覧を取得(VB.NET) ( No.0 )  [親スレッドへ]
日時: 2010/03/11 07:13
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[システム関係][周辺機器][]                                          *
* キーワード:解像度,画面のプロパティ,コントロールパネル,モニタ,,                 *
***********************************************************************************
タイトル : 選択可能な画面解像度の取得
記 事 No : 9876
投 稿 日 : 2010/02/16(Tue) 16:16
元質問者 : miri  

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

-----------------------------------------------------------------------------------
記事No : 9882
投稿日 : 2010/02/17(Wed) 01:38
回答者 : 魔界の仮面弁士  
-----------------------------------------------------------------------------------
> .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

以下、省略 詳しくは、記事No : 9882 等一連のスレッドをご覧下さい。- By 花ちゃん

※ Direct3D.dll がインストールされていない環境では、別途、インストールする必要があります。
  又、実行時に例外が発生する場合があります、その場合、「デバッグ」→「例外」でLoaderLockの
  チェックを一旦外して実行すれば動作します。
  その後元に戻してもエラーは出なくなる場合もあります。
  詳しくは、LoaderLock をキーに検索して調べて見て下さい。

  尚、一部PCでは、実解像度以上の設定値の解像度を取得できない場合があります。
  (14.1 型 1024×768 で 1920×1440 等が取得できない。画面のプロパティでは、設定できる)
  上記は、Win32 API を使って取得しても同じです。

上記プログラムの実行結果(全てを取得できない環境での)
  640 x   480 : 60Hz : X8R8G8B8
  800 x   600 : 60Hz : X8R8G8B8
1,024 x   768 : 60Hz : X8R8G8B8
  640 x   480 : 60Hz : R5G6B5
  800 x   600 : 60Hz : R5G6B5
1,024 x   768 : 60Hz : R5G6B5



 [スレッド一覧へ] [親スレッドへ]