![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменить свойство монитора [D7, WinXP]
Goric © (2007-09-16 22:22:00)Здраствуйте, Мастера!
Помогите решить трабл. Мне необходимо изменять свойства дисплея "Расширить рабочий стол на этот монитор". Определить с помощью функции EnumDisplayDevices текущее состояние получилось (проверяя на наличие флага DISPLAY_DEVICE_ATTACHED_TO_DESKTOP). Рассматривал функцию ChangeDisplaySettings, но как с ее помощью можно изменить состояние монитора на необходимое не совсем понятно. Спасибо.
Goric (2007-09-17 11:45:00) [1]В том-то и дело, что разрешение экрана изменить можно, но как этот экран "примонтировать" к общему рабочему столу по прежнему остается загадкой.
Nikfel (2007-09-17 09:42:00) [2]Вот код. Источник не знаю и не проверял.
Изменение разрешения экрана
function SetFullscreenMode(ModeIndex: Integer):boolean;
var DeviceMode : TDevMode;
begin
with DeviceMode do begin
dmSize:=SizeOf(DeviceMode);
dmBitsPerPel:=16;
dmPelsWidth:=640;
dmPelsHeight:=480;
dmFields:=DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;
Result:=False;
if ChangeDisplaySettings(DeviceMode,CDS_TEST or CDS_FULLSCREEN)
<> DISP_CHANGE_SUCCESSFUL then
Exit;
Result:=ChangeDisplaySettings(DeviceMode,CDS_FULLSCREEN)
= DISP_CHANGE_SUCCESSFUL;
end;
end;
procedure RestoreDefaultMode;
var T : TDevMode absolute 0;
begin
ChangeDisplaySettings(T,CDS_FULLSCREEN);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if setFullScreenMode(1) then begin
sleep(7000);
RestoreDefaultMode;
end;
end;