ここでは、C# にてディスプレイおよび作業領域のサイズを取得するサンプルコードを掲載しています。なお、サンプルでは複数のディスプレイをもつ、マルチスクリーン環境にも対応しています。
スポンサーリンク
ディスプレイサイズ・作業領域のサイズを取得(マルチスクリーン対応)
マルチスクリーンにも対応したそれぞれのサイズを取得するサンプルコードは次の通りです。
// プライマリスクリーンのみのサイズを取得する Console.WriteLine("プライマリスクリーンの高さ:" + Screen.PrimaryScreen.Bounds.Height); Console.WriteLine("プライマリスクリーンの幅 :" + Screen.PrimaryScreen.Bounds.Width); Console.WriteLine("ワーキングエリアの高さ:" + Screen.PrimaryScreen.WorkingArea.Height); Console.WriteLine("ワーキングエリアの幅 :" + Screen.PrimaryScreen.WorkingArea.Width); // プライマリを含むすべてのディスプレイのサイズをそれぞれ取得する foreach (Screen sc in Screen.AllScreens) { Console.WriteLine("デバイス名:" + sc.DeviceName); Console.WriteLine("プライマリデバイス?:" + sc.Primary.ToString()); Console.WriteLine("ディスプレイ高さ:" + sc.Bounds.Height); Console.WriteLine("ディスプレイ幅 :" + sc.Bounds.Width); Console.WriteLine("ワーキングエリア高さ:" + sc.WorkingArea.Height); Console.WriteLine("ワーキングエリア幅 :" + sc.WorkingArea.Width); }
実行結果
ノートPCにさらに1台のディスプレイを追加して実行した結果が次の出力です。下記の結果からワーキングエリアの高さがディスプレイの高さよりも40小さな値となっています。
これは、実行した環境ではタスクバーの高さの幅になります。なお、タスクバーを自動で隠す設定にしている場合には、タスクバーの影響によって作業エリアの高さは小さくなりません。
プライマリスクリーンの高さ:864 プライマリスクリーンの幅 :1536 ワーキングエリアの高さ:824 ← 40小さくなっている ワーキングエリアの幅 :1536 デバイス名:\\.\DISPLAY1 プライマリデバイス?:True ディスプレイ高さ:864 ディスプレイ幅 :1536 ワーキングエリア高さ:824 ← 40小さくなっている ワーキングエリア幅 :1536 デバイス名:\\.\DISPLAY2 プライマリデバイス?:False ディスプレイ高さ:1080 ディスプレイ幅 :1920 ワーキングエリア高さ:1040 ← 40小さくなっている ワーキングエリア幅 :1920