|
.NET TIPS ディスプレイの解像度を取得するには?デジタルアドバンテージ2003/03/27 |
![]() |
|
|
|
ディスプレイの解像度を取得するには、Screenクラス(System.Windows.Forms名前空間)のPrimaryScreenプロパティを取得し、さらにそのBoundsプロパティを取得すれば、ディスプレイの解像度が設定されたRectangle構造体(System.Drawing名前空間)のオブジェクトを得ることができる。実際には次にように記述できる。
Rectangle rec = Screen.PrimaryScreen.Bounds;
Rectangle構造体は、四角形領域の位置とサイズを格納するためのものだが、そのメンバのうちWidthとHeightに、ディスプレイの幅と高さが設定される。
これらのクラスを使用した実行可能なサンプル・コードを次に示す。
|
|
| ディスプレイの解像度を表示するC#のサンプル・プログラム(screen.cs) | |
ScreenクラスのPrimaryScreenプロパティは、その名前からも分かるように、プライマリ・ディスプレイ(コンピュータに複数のディスプレイが接続されている場合のメインとなるディスプレイ)に関するScreenクラスのオブジェクトで、staticなプロパティとなっている。
複数のディスプレイが接続されている場合
コンピュータに複数のディスプレイが接続されている場合には、ScreenクラスのAllScreensプロパティにより、すべてのディスプレイに関するScreenオブジェクトを取得することができる(AllScreensプロパティはScreenクラスの配列)。
AllScreensプロパティを使用したサンプル・プログラムを次に示す。
|
|
| すべてのディスプレイの解像度を表示するC#のサンプル・プログラム(screens.cs) | |
リスト中の出力例は筆者の環境で実行した場合のものだ。筆者のコンピュータでは、1600x1200と1280x1024の解像度の2枚のディスプレイ・カードを使用しており、次のような設定にしている。
![]() |
| 筆者のコンピュータの画面設定 |
| マルチ・ディスプレイ環境なら、ディスプレイの数だけ情報が表示される。 |
このような設定のため、リスト内の出力例では、セカンダリ・ディスプレイの位置(X、Y)が(1600,176)となっている(1200−1024=176)。
AllScreensプロパティは、次のようにして単にコンピュータに接続されたディスプレイの数を取得するためにも利用することができる。
int numDisplay = Screen.AllScreens.Length;
ただし、これによって得られる値は論理的なもので、例えばWindows XPのリモート・デスクトップ接続により接続している環境でこのコードを実行すると、numDisplayの値は1となる。![]()
| カテゴリ:Windowsフォーム 処理対象:ウィンドウ 使用ライブラリ:Screenクラス(System.Windows.Forms名前空間) 使用ライブラリ:Rectangle構造体(System.Drawing名前空間) |
|
||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



