Есть ли в WinXP и WinVista папка, в которую все пользователи имеют права на запись? - PullRequest
1 голос
/ 17 сентября 2008

У нас есть приложение NET, которое устанавливается в папку Program Files. Само приложение записывает некоторые файлы и создает несколько каталогов в своей папке приложения. Но когда обычный пользователь Windows пытается использовать наше приложение, оно падает, потому что у этого пользователя нет прав на запись в папку приложения. Есть ли в WinXP и WinVista какая-либо папка, для которой у всех пользователей есть права на запись по умолчанию? Вся папка пользователя или что-то подобное?

Ответы [ 2 ]

2 голосов
/ 17 сентября 2008

Нет такой папки.

Но вы можете создать его.

Существует CSIDL_COMMON_APPDATA, который в Vista отображается на% ProgramData% (c: \ ProgramData), а в XP - на c: \ Documents and Settings \ AllUsers \ Application Data

Не стесняйтесь создать папку в вашем установщике и настроить ACL, чтобы каждый мог писать в эту папку.

Помните, что COMMON_APPDATA была реализована в Версии 5 библиотеки общих элементов управления, что означает, что она доступна в Windows 2000 и более поздних версиях. В NT4 вы можете создать эту папку в установочном каталоге и в Windows 98 и ниже, это не имеет значения, так как эти системы в любом случае не имеют системы разрешений.

Вот пример кода InnoSetup для создания этой папки:

[Dirs]
Name: {code:getDBPath}; Flags: uninsalwaysuninstall; Permissions: authusers-modify

[Code]


function getDBPath(Param: String): String;
var
   Version: TWindowsVersion;
begin
  Result := ExpandConstant('{app}\data');
  GetWindowsVersionEx(Version);
  if (Version.Major >= 5) then begin
    Result := ExpandConstant('{commonappdata}\myprog');
  end;
end;
0 голосов
/ 17 сентября 2008

Я не уверен, что существует единственный путь, по которому все пользователи, не являющиеся администраторами, имеют разрешение на запись.

Я думаю, что правильным будет <User>\Application Data

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