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

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

Extractor


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

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


Цитата Iska:
Проблем не будет ровно до тех пор, пока какое-нибудь приложение не попробует прочитать его именно как REG_EXPAND_SZ, и внезапно обнаружит, что там такого типа нет. »
И внезапно прочитает строку, не заметив вообще ни каких проблем для себя.
Просто при чтении значения параметра программа получит от системы ответ, что тип данных - REG_SZ а не REG_EXPAND_SZ. Программа может это проигнорировать, или нет, на своё усмотрение.
Можно для сабжевой строки установить тип данных хоть REG_BINARY, программы этого могут не заметить.

Флаг REG_EXPAND_SZ даёт самой программе "сигнал", что в строке может содержаться не преобразованная переменная окружения, которую необходимо дополнительно преобразовать. И дальше именно сама программа должна решить, что делать дальше с такой строкой.

Если говорить о физическом смысле типов данных в значениях параметров реестра с точки зрения самой системы, то нет никакой ложки никаких типов данных не существует. Значение параметра реестра - это просто байтовый массив любой длинны с любым содержимым.
То, что мы называем "тип данных" (REG_SZ, REG_EXPAND_SZ, REG_BINARY.........) - это просто флаг, говорящий программе, что данные структурированы определённым образом.

-------
Мои проекты:
Системные: Fake-Setup Advanced | MSSTMake | UserMake
Оформление: WinstyleMonitor | Winstyle - Установка на "живую" систему | Windows 7 Universal Patcher | Панель персонализации для Windows 7 Starter & Home Basic
Уголок юного археолога: Внутренности Установщика WinXP

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:52, 14-02-2020 | #1490