web-dev-qa-db-ja.com

すべてのモニターの数と解像度を見つける

どのようにウィンドウをポーリングして、接続されているモニターとそれらが実行されている解像度を確認しますか?

27
Crash893

C#の場合: Screen Class 1つのシステム上の1つのディスプレイデバイスまたは複数のディスプレイデバイスを表します。 Bounds属性が必要です。

foreach(var screen in Screen.AllScreens)
{
    // For each screen, add the screen properties to a list box.
    listBox1.Items.Add("Device Name: " + screen.DeviceName);
    listBox1.Items.Add("Bounds: " + screen.Bounds.ToString());
    listBox1.Items.Add("Type: " + screen.GetType().ToString());
    listBox1.Items.Add("Working Area: " + screen.WorkingArea.ToString());
    listBox1.Items.Add("Primary Screen: " + screen.Primary.ToString());
}
48
Joe Koberg

画面クラス を使用します。

すべてのモニターをScreen.AllScreens配列、およびBoundsプロパティを使用してそれぞれの解像度と位置を確認します。

一部のビデオカードは2つのモニターを1つの非常に広い画面にマージするため、Windowsはモニターが1つしかないと見なします。必要に応じて、画面の幅が高さの2倍以上かどうかを確認できます。もしそうなら、それはおそらく水平方向のスパンであり、2つの等しい画面として扱うことができます。ただし、これはより複雑であり、実行する必要はありません。垂直スパンもサポートされていますが、あまり一般的ではありません。

5
SLaks

http://msdn.Microsoft.com/en-us/magazine/cc301462.aspx

GetSystemMetricsは、アイコンのサイズやウィンドウキャプションの高さなど、あらゆる種類のグローバルディメンションを取得するために使用できる便利な関数です。 Windows 2000には、SM_CXVIRTUALSCREENやSM_CYVIRTUALSCREENなどの新しいパラメーターがあり、複数のモニターシステムの画面の仮想サイズを取得します。 Windowsの初心者(およびプロも)は、GetSystemMetricsのドキュメントをチェックして、取得できるさまざまなシステムメトリック(ディメンション)をすべて確認してください。 http://msdn.Microsoft.com/library/en-us/sysinfo/sysinfo_8fjn.asp で最新のプラットフォームSDKを参照してください。 GetSystemMetricsは、頻繁に使用する必要がある便利な関数であり、Windowsのすべてのバージョンで新しい機能が表示されます。

3
somacore