; Пример использования функции
_DisplaySetRes (1024, 768, 32, 75)
; Функция изменения видеорежима (для одного монитора)
Func _DisplaySetRes ($width, $height, $depth, $freq)
Local $dev = DllStructCreate ("byte[32];int[10];byte[32];int[6]")
; Возвращаем текущее состояние устройства
Local $ret = DLLCall ('user32.dll', 'int', 'EnumDisplaySettings', _
'ptr' , 0, _
'long', 0, _
'ptr' , DllStructGetPtr ($dev) )
If @error Then Return 0
If $ret[0]=0 Then Return 0
; Правим нужные элементы структуры
DllStructSetData ($dev, 4, $depth, 1)
DllStructSetData ($dev, 4, $width, 2)
DllStructSetData ($dev, 4, $height, 3)
DllStructSetData ($dev, 4, $freq, 5)
; Проверяем корректность параметров
$ret = DllCall ('user32.dll', 'int', 'ChangeDisplaySettings', _
'ptr', DllStructGetPtr ($dev), _
'int', 2 )
If @error Then Return 0
; Если все ОК - применяем новые параметры
If $ret[0] =0 Then
$ret = DllCall ('user32.dll', 'int', 'ChangeDisplaySettings', _
'ptr', DllStructGetPtr ($dev), _
'int', 1 )
If @error Then Return 0
Return 1
Else
Return -1
EndIf
EndFunc