Что нового

Изменить разрешение экрана - микро-версия

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Версия AutoIt: 3.3.14.0

Описание:

Всем здравствуйте.

1) Операционная система: Microsoft Windows 7 Professional Service Pack 1 x64
2) Контроль учетных записей: ВЫКЛючен

Пожалуйста, помогите, мне нужно

1) есть скрипт для смены разрешения экрана перейти
Код:
; Пример использования функции
_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

2) имею желание использовать минимальное количество кода для смены разрешения экрана
3) пожалуйста, я очень прошу, из этого перейти сделайте минимальное количество кода, чтобы работало
4) или, может есть другое, красивое, решение для смены разрешения экрана, в одну строку

Пожалуйста, помогите

Спасибо.

Примечания:

Отсутствуют
 
Последнее редактирование модератором:

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
ТС, меньше размера интерпретатора сделать код не получится. ))
 
Автор
S

SharkyEXE

Новичок
Сообщения
134
Репутация
0
ТС, меньше размера интерпретатора сделать код не получится. ))
Здравствуйте.

Лично мне бы хватило типа такой строки
Код:
DllCall ('user32.dll', 'int', 'ChangeDisplaySettings', 'ptr', DllStructGetPtr (1024, 768, 32, 75), 'int', 1 )

где 1024 - высота, 768 - ширина, 32 - битность цветов (глубина цвета), 75 - частота обновления экрана
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
внимательно посмотри код. в функцию ChangeDisplaySettings передается структура с данными. а значит никак в одну строку не получится.
 

IMStrelcov

CTPEJIbLLOB
Сообщения
253
Репутация
64
Лично мне бы хватило типа такой строки
Здравствуйте.

Лично мне бы хватило типа такой строки
Код:
DllCall ('user32.dll', 'int', 'ChangeDisplaySettings', 'ptr', DllStructGetPtr (1024, 768, 32, 75), 'int', 1 )

где 1024 - высота, 768 - ширина, 32 - битность цветов (глубина цвета), 75 - частота обновления экрана
Заранее извиняюсь, но не здержался.
А мне бы хватило строки
Код:
DllStructGetPtr(1024, 768, 32, 75)

Если бы так можно было.
 
Верх