__COMPAT_LAYER, и как использовать его
__COMPAT_LAYER является системной переменной среды, которая позволяет установить уровни совместимости, которые являются параметры, которые можно настроить при нажатии правой кнопкой мыши на исполняемый файл, выберите Свойства, и перейдите на вкладку Совместимость.
Есть several options to choose from в дополнение к тому, вы знаете о:
- 256-цветные - Работает в 256 цветов
- 640x480 - Запускается в разрешении 640x480 экрана
- DisableThemes - отключает визуальные темы
- Win95 - Запускает программу в режиме совместимости с Windows 95
- Win98 - Запускает программу в режиме совместимости с Windows 98/ME
- Win2000 - Запускает программу в режиме совместимости с Windows 2000
- NT4SP5 - Запускает программу в режиме совместимости для Windows NT 4.0 SP5
Вы можете использовать несколько вариантов, разделяя их пробелом: set __COMPAT_LAYER=Win98 640x480
снятия с охраны __COMPAT_LAYER Переменная
Эти настройки сохраняются до тех пор, пока переменная не существует. Переменная останавливается, если либо командная строка, в которой была установлена переменная, закрыта, либо когда переменная вручную отключена командой set __COMPAT_LAYER=
.
Поскольку вы устанавливаете переменную с помощью командного скрипта, переменная автоматически отключается после завершения исполняемого файла, который завершается, и скрипт закрывается. Важно отметить, что параметры переменной сохраняются для любых дочерних процессов, которые порождаются выбранным исполняемым файлом.
Безопасность Использование __COMPAT_LAYER
Установка __COMPAT_LAYER в RunAsInvoker фактически не дают вам права администратора, если вы не имеете их; он просто запрещает появление всплывающего окна UAC, а затем runs the program as whatever user called it. Таким образом, безопасно использовать это, так как вы не волшебным образом получаете права администратора.
Вы также можете установить переменную в RunAsHighest (только триггеры UAC, если у вас есть права администратора, но также не предоставляют права администратора, если у вас их нет) или RunAsAdmin (всегда запускает UAC).
Он делает то, что говорит. Устанавливает параметры совместимости. Ваши примеры будут работать только для администраторов. Не администраторы ошибаются. –
@Noodles вы можете уточнить и объяснить ответ этих трех вопросов. –
Предположительно, что следует читать 'cmd/min/c ...'? – TripeHound