Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 83
Благодарности: 1

Профиль | Отправить PM | Цитировать


Flix, спасибо за подробный разбор!

Я не планировал смену разрешения у пользователей.

Нужно только определять текущее разрешение экрана с целью узнать поддерживает ли монитор Full HD.
Таким образом, если разрешение равно 1920х1080, то один код в инсталляторе. Если нет, то код другой.

Понимаю теперь, что это делается без сторонних плагинов.

Основываясь на Справочнике и Вашем примере, получился такой код функции.
Будет ли сиё работать со всеми Windows от XP до 10? Или что-то нужно добавить?

Код: Выделить весь код
Function .onInit
; Получаем текущие размеры экрана
   System::Call 'user32::GetSystemMetrics(i 0) i .r0' ; Ширина в пикселях
   System::Call 'user32::GetSystemMetrics(i 1) i .r1' ; Высота в пикселях
${If} $0 == 1920
${AndIf} $1 == 1080
MessageBox MB_OK "Установлено разрешение 1920x1080"
${Else}
   MessageBox MB_OK "Установлено любое другое разрешение"
${EndIf}
FunctionEnd
---------------------------

Цитата Flix:
Если функционал вашей программы установки активно использует регистры общего назначения, то для хранения исходных значений с размерами экрана лучше задействовать собственные переменные. »
Вы о том, чтобы заменить переменные $0 и $1 на созданные? В Справочнике про это написано, но я не разобрался как созданные переменные правильно внедрять в логические конструкции.

Последний раз редактировалось Serg866, 05-08-2018 в 15:56.


Отправлено: 15:45, 05-08-2018 | #2217