Всем привет. Имеется код в котором введенное значение кладется в файл it's password.txt в директории C:\Windows\Sustem32\config. Программа работает отлично, файл создается, пароль сохраняется, но файл в директории я не вижу. Перепробвал уже все: в настройках проводника ставил "показывать системные файлы", снимал галку со "скрывать системные файлы". Ничего не помогает. Моя программа говорит мне о том, что файл есть и хэш в нем лежит. в видео это видно четко и ясно. https://youtu.be/vxlo6aSFB5k
Дело в том, что Windows не разрешает приложению с правами пользователя писать в системный каталог.
Раньше, во времена Windows 95, любое приложение имело право писать куда угодно, и часто могло обрушить систему, переписав важные настройки или подменив системную библиотеку. Если просто отобрать у приложений права на системный каталог, то старые программы, написанные без учёта безопасности системы, будут просто валиться. Для обеспечения обратной совместимости для таких программ системой проводится виртуализация системного каталога и реестра: если программа пишет в запрещённое место, система считает, что автор программы не читал документацию, и притворяется, что всё в порядке. При этом система на деле складывает файлы в %LOCALAPPDATA%\VirtualStore
, а ключи реестра — в HKCU\Software\Classes\VirtualStore
.
При этом приложению при чтении подставляются значения, как будто бы оно смогло записать туда, куда нельзя. Другие приложения при этом, понятно, ничего не увидят.
Если вы хотите писать куда-то данные, правильное место для них — каталог %APPDATA%\<имя вашего приложения>\
. Не надейтесь на виртуализацию: рано или поздно Майкрософт перестанет поддерживать совместимость с багами Windows 95, и код начнёт просто падать.
Литература:
Inside Windows Vista User Account Control — Mark Russinovich
How User Account Control works — Microsoft Docs.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Язык C# Как запустить exe инсталятор программы внутри формы своей программы? Это на тот случай если инсталятор не поддерживает тихий режим...
Добрый день, ищу помощи при создании службы которая работает с переодичностью (обновляет данные из интернета) в XamarinForms, служба не запускается...