Existe uma pasta no WinXP e no WinVista na qual todos os usuários têm permissões de gravação?

StackOverflow https://stackoverflow.com/questions/81686

  •  09-06-2019
  •  | 
  •  

Pergunta

Temos um aplicativo NET que é instalado na pasta Arquivos de Programas.O próprio aplicativo grava alguns arquivos e cria alguns diretórios em sua pasta de aplicativos.Mas quando um usuário normal do Windows tenta usar nosso aplicativo, ele trava porque esse usuário não tem permissão para gravar na pasta do aplicativo.Existe alguma pasta no WinXP e no WinVista na qual todos os usuários tenham permissões de gravação por padrão?Pasta All User ou algo parecido?

Foi útil?

Solução

Não existe tal pasta.

Mas você pode criar um.

Há CSIDL_COMMON_APPDATA que no Vista mapeia para% ProgramData% (c: \ ProgramData) e no XP mapeia para c: \ Documents and Settings \ AllUsers \ Application Data

Sinta-se livre para criar uma pasta lá em seu instalador e definir a ACL para que todos possam escrever para essa pasta.

Tenha em mente que COMMON_APPDATA foi implementado na Versão 5 da biblioteca de controles comuns que significa que ele está disponível no Windows 2000 e posterior. Em NT4, você pode criar essa pasta no seu diretório de instalação e no Windows 98 e abaixo não importa de qualquer maneira devido a estes sistemas não ter um sistema de permissão de qualquer maneira.

Aqui está um código InnoSetup exemplo para criar essa pasta:

[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;

Outras dicas

Eu não tenho certeza de que existe um único caminho para o qual todos os usuários que não são administradores têm permissão para gravar.

Eu acho que o correto seria <User>\Application Data

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top