Вопрос по – Как записать в общую папку Application Data?

4

У меня есть приложение Visual Basic 6.0, для которого я хочу установитьAll UsersНапример, настройки хранятся в одном месте независимо от того, кто входит в компьютер. У меня есть следующий код, чтобы найти общее местоположение:

Const ssfCOMMONAPPDATA = &H23
Dim strAllUsersPath As String

strAllUsersPath = CreateObject("Shell.Application").NameSpace(ssfCOMMONAPPDATA).Self.Path

В Windows XP этот путь указывает наC:\Documents and Settings\All Users\Application Data\ папка. Программа установки скопирует туда файл настроек, и все отлично. Приложение Visual Basic 6.0 может изменить его в любое время.

В Windows 7 этот путь указывает наc:\ProgramData папка. Программа установки, которая требует прав администратора, копирует файл туда. Однако, когда мое приложение Visual Basic 6.0 запускается и получает доступ к файлу, Windows 7 копирует файл настроек в C: \ Users {USER LOGIN} \ AppData \ Local \ VirtualStore \ и выполняет все операции над ним. В результате, поскольку для каждого пользователя Windows 7 копирует файл настроек в отдельный каталог пользователей, у пользователей в конечном итоге будет свой файл настроек.

Я храню файл в неправильном месте? Я делаю это неправильно?

A question and two answers это может быть интересно Steve

Ваш Ответ

1   ответ
10

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

Как Microsoft считает, что это должно быть сделано.

Error: User Rate Limit ExceededrecommendedError: User Rate Limit ExceededpreferredError: User Rate Limit ExceededownerError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededCOMMONAPPDATAError: User Rate Limit Exceedednice VB6 article by Karl PetersonError: User Rate Limit Exceededthis VB6 question

Похожие вопросы