35

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

4

3 に答える 3

62

C#の場合:Screenクラス単一システム上の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());
}
于 2009-10-08T15:43:20.380 に答える
6

Screenクラスを使用します。

アレイ内のすべてのモニターを表示Screen.AllScreensし、プロパティを使用して各モニターの解像度と位置を確認できBoundsます。

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

于 2009-10-08T15:47:05.083 に答える
3

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

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

于 2009-10-08T15:42:50.177 に答える