おせわになります。
当方XP&D7を利用していまして、今回解像度の変更を行ってみたいのですが
シングルモニター時は ChangeDisplaySettings を使い変更できるのですが
マルチモニターで、片側だけの解像度を変えたい場合は
どのように行えばいいでしょうか?
また、電源を切ったり、バックライトを切ったり等もできるのでしょうか?
すいませんが、ご指導おねがいいたします。
> マルチモニターで、片側だけの解像度を変えたい場合
動作未確認ですが、以下でどうでしょう。
var
DevNum: DWORD;
Display: TDisplayDevice;
Flags, Flags2: DWORD;
DevMode: TDeviceMode;
Const
ENUM_CURRENT_SETTINGS: DWORD = $FFFFFFFF; // High(DWORD) - 1
ENUM_REGISTRY_SETTINGS: DWORD = $FFFFFFFE; // High(DWORD) - 2
DISP_CHANGE_SUCCESSFUL = 0;
DISP_CHANGE_RESTART = 1;
DISP_CHANGE_FAILED = -1;
DISP_CHANGE_BADMODE = -2;
DISP_CHANGE_NOTUPDATED = -3;
DISP_CHANGE_BADFLAGS = -4;
DISP_CHANGE_BADPARAM = -5;
begin
DevNum:= 1; //セカンド・ディスプレイ
Display.cb := sizeof(Display);
Flags := 0;
EnumDisplayDevices(nil, DevNum, Display , Flags);
EnumDisplaySettings(Display.DeviceName, ENUM_CURRENT_SETTINGS, DevMode);
with DevMode do
begin
dmPelsWidth := 800;
dmPelsHeight := 600;
end;
Flags2 := 0;
if ChangeDisplaySettingsEx(Display.DeviceName, DevMode, 0, Flags2, 0) = DISP_CHANGE_SUCCESSFUL then
showMessage('Success');
end;
えーとね様、無事できました!!
デュアルディスプレー環境が使いにくくて
あまり使っていなかったのですが、おかげさまで
ガンガン活用できます!!
とても感謝です!!
ツイート | ![]() |