Хорошо, если мы предположим пару вещей:
- Это проблема только для Vista или более поздней версии.
- Ваши данные находятся в подпапках , подApp.Path.
... У меня есть своего рода обходной путь, который можно использовать.
Обратите внимание, что я использую этот трюк только тогда, когда у меня есть куча старых программ VB6, которыебыли написаны для использования данных в папках под App.Path, что-то вроде быстрого и грязного взлома, чтобы заставить многие программы работать быстро.Я почти всегда добавляю или обновляю также манифест приложения, в основном для предотвращения виртуализации.
Внесенные мной изменения:
- Добавление небольшого кода в Sub Main (вставкаSub Main, если у программы его еще нет).
- Добавьте в проект два модуля Class (вызванных новым кодом Sub Main).
Когда новая программаВ Vista или более поздней версии программа должна быть запущена один раз от имени администратора.В самой последней версии моего кода надстройки программа предложит пользователю повторно запустить его с повышенными правами, если это необходимо, и, когда все в порядке, он делает это и самоуничтожается.
После первого запуска все должно быть в порядке.работает так же, как в Windows 2000, XP и т. д.
Этот код запуска, требующий повышения прав, предоставляет список подпапок App.Path, необходимых для класса PathLinks.
Pathlinksсоздает папку программы в специальной папке Public, а затем создает соответствующие подпапки для данных в этой папке.Затем он перемещает любые файлы и подпапки в этих подпапках App.Path в новые места.Наконец, он создает символические ссылки на новые папки в App.Path.
При запуске под Windows до Vista, PathLinks просто создает любой из списка подпапок App.Path (в App.Path), которые неуже существует (т. е. путем установки).
С этого момента программа найдет файлы в новом месте без каких-либо изменений в использовании App.Path.
Один из двух классов надстроек является косметическим, и вы можете удалить его.Он просто позволяет коду запуска вызывать TaskDialog вместо использования вызова MsgBox.
Обязательно прокрутите вниз до последней версии, опубликованной в PathLinks - Tame App.Path под Vista +
Обратите внимание, что в примере проекта пропускается запуск приложения при выполнении этого трюка с «повышенным уровнем в первый раз».Он просто выполняет Sub Sub в Sub Main после перемещения данных и ссылки на них.