Восстановление файлов после отключения виртуализации UAC - PullRequest
2 голосов
/ 15 марта 2011

Мы наконец-то приступили к перемещению документов нашего программного обеспечения из собственного каталога программы в «Мои документы».Мы также добавляем в манифест строку «requiredPrivileges», чтобы избежать дальнейших проблем с виртуализацией.

Однако если бы мы только это сделали, то любой, кто работал со старыми версиями в Vista / 7, вероятно, потерял бы своиработать где-то в скрытом каталоге VirtualStore после обновления.Так какой же предпочтительный способ перехода в 21-й век?

Честно говоря, я немного опасаюсь копировать файлы, особенно потому, что не могу найти программный способ попасть в теневой каталог, нопо-видимому, у многих других людей была такая же проблема до нас.

1 Ответ

2 голосов
/ 15 марта 2011

Не добавляйте запрошенные привилегии, если для работы вашей программы не требуются законные административные права - ничто в вашем описании не говорит о том, что вы это делаете.Это должно также позволить вам просто скопировать файлы при первой загрузке, как если бы они все еще находились в каталоге вашей программы, потому что любая виртуализация все равно будет действовать.

Однако, если вам абсолютно необходимовыполнить миграцию без включенного контроля учетных записей, вы можете найти ваши файлы в %LOCALAPPDATA%\VirtualStore\path\to\file.Например, если ваш файл будет храниться в C: \ Program Files \ OurApp \, вы найдете его в %LOCALAPPDATA%\VirtualStore\Program Files\OurApp\.

Чтобы получить путь к %LOCALAPPDATA%Вы можете использовать SHGetSpecialFolderPath с CSIDL_LOCAL_APPDATA в качестве параметра CSIDL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...