Я должен поддерживать устаревшее приложение, изначально созданное для Windows NT 4 (32-разрядная версия), но все еще работающее в Windows 10 (64-разрядное приложение), при условии, что все параметры совместимости выполнены. Проблема в том, что это нужно делать в основном вручную.
Я пытаюсь понять, как создать программу или скрипт, который я мог бы поставить для этой цели. Я уже знаю, что параметры совместимости хранятся в реестре в папке HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
или HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
соответственно (в зависимости от того, применяются ли параметры всем или только одному пользователю), добавляя значения, имена которых являются путями приложения, например,
C:\Program Files (x86)\SomeApp\SomeBinary.exe
добавление содержимого (например, для обеспечения совместимости с Windows XP с пакетом обновления 3)
WINXPSP3
как отмечено в Windows 7, или
~ WINXPSP3
как наблюдается в Windows 8.1 (и Windows 8)
Что я хочу понять перед отправкой такого инструмента:
Какова цель или значение знака тильды, начинающего содержание значения?
Я ищу его месяцами (Google, Bing), но к настоящему времени я не нашел ничего, кроме вопросов. Есть только предположение, что это также может быть бессмысленным (?):
Но большинство предложений по настройке параметров совместимости, похоже, очень заботятся об этом волшебном символе:
Обратите внимание, что между тильдой и HIGHDPIAWARE есть пространство.
Есть ли кто-нибудь, кто действительно что-то знает об этом?