21

プログラムで画面の解像度を変更したり、Windows XP で複数のモニターを有効/無効にしたりする方法はありますか? たとえば、1 台のモニターで 1024x768 を 2 台のモニターで 1280x1024 に変更するにはどうすればよいですか? これを行うにはwin32関数に最も興味がありますが、Windowsショートカットに関連付けることができるものなら何でも十分です。

4

4 に答える 4

31

EnumDisplayDevicesを使用して使用可能なディスプレイを把握し、EnumDisplaySettingsを使用してディスプレイで使用可能な解像度のリストを取得できます。ChangeDisplaySettingsを使用して、必要な解像度を設定します。

于 2008-10-18T19:00:53.370 に答える
3

はい。ただし、.NET の一部ではありません。Win32 API にアクセスするには、ラッパーを使用、呼び出し、または作成する必要があります。

ChangeDisplaySettingsおよび関連する関数を参照してください。

ここでは、基本的な例を見つけることができます。

于 2008-10-18T18:57:49.180 に答える
-2

これはhttp://www.autohotkey.comで簡単にスクリプト化できます

これは、Windows+1とWindows+2を使用して1台のモニターと2台のモニターを交換するためのスクリプトです。

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Recommended for catching common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#1::
Send {LWin}
WinWaitActive Start menu
Send Adjust Screen Resolution
Send {enter}
WinWaitActive Screen Resolution
ControlClick ComboBox3
Send {PgDn}
Send {Up} ; Select "Show desktop only on 1"
Send {enter}
Sleep 3000 ; workaround - cannot select accept/revert window?
Send {left}
Send {enter} ; accept changes
Return
#2::
Send {LWin}
WinWaitActive Start menu
Send Adjust Screen Resolution
Send {enter}
WinWaitActive Screen Resolution
ControlClick ComboBox3
Send {PgDn}
Send {Up}
Send {Up} ; Select "Extend these displays"
Send {enter}
Sleep 3000 ; workaround - cannot select accept/revert window?
Send {left}
Send {enter} ; accept changes
Return
于 2012-03-22T18:27:38.793 に答える