タスクバーを除いた画面の幅と高さを取得する (プライマリスクリーンの有効領域の取得)

タスクバーを除いた画面の幅と高さを取得するコードを紹介します。

概要

こちらの記事では、画面の解像度を取得するコードを紹介しましたが、Windowsアプリケーションを作成する場合は、画面の解像度ではなく画面全体の大きさからタスクバーなどの領域を除外したサイズを取得したい場合があります。(実際に作業領域として使える大きさ)
この記事ではスクリーン全体の大きさから、タスクバーなどを除いた画面の幅と高さを取得するコードを紹介します。

プログラム例

UI

以下のUIを準備します。(button1は使用しません)
タスクバーを除いた画面の幅と高さを取得する (プライマリスクリーンの有効領域の取得):画像1

コード

以下のコードを記述します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace ScreenImageCapture
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button2_Click(object sender, EventArgs e)
    {
      int screen_width = Screen.PrimaryScreen.WorkingArea.Width;
      int screen_height = Screen.PrimaryScreen.WorkingArea.Height;

      textBox_Output.Text += string.Format("スクリーンの作業領域の幅:{0:d}\r\n", screen_width);
      textBox_Output.Text += string.Format("スクリーンの作業領域の高さ:{0:d}\r\n", screen_height);

    }
  }
}

解説

Screen.PrimaryScreen.WorkingArea.Widthでスクリーンの作業領域の幅を、Screen.PrimaryScreen.WorkingArea.Heightでスクリーンの作業領域の高さを取得します。取得した値をテキストボックスに表示します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
タスクバーを除いた画面の幅と高さを取得する (プライマリスクリーンの有効領域の取得):画像2

[button2]をクリックするとスクリーンの作業領域の幅と高さが表示されます。
タスクバーを除いた画面の幅と高さを取得する (プライマリスクリーンの有効領域の取得):画像3

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2013-12-06
Copyright © 1995–2025 iPentec all rights reserverd.