Existe-t-il un dossier dans WinXP et WinVista dans lequel tous les utilisateurs ont des autorisations d'écriture?

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

  •  09-06-2019
  •  | 
  •  

Question

Nous avons une application NET qui est installée dans le dossier Program Files. L'application elle-même écrit des fichiers et crée des répertoires dans son dossier d'applications. Mais lorsqu'un utilisateur Windows normal essaie d'utiliser notre application, il se bloque car cet utilisateur n'a pas l'autorisation d'écrire dans le dossier de l'application. Existe-t-il un dossier dans WinXP et WinVista sur lequel tous les utilisateurs ont des autorisations d'écriture par défaut? Dossier Tous les utilisateurs ou quelque chose comme ça?

Était-ce utile?

La solution

Ce dossier n'existe pas.

Mais vous pouvez en créer un.

Il existe CSIDL_COMMON_APPDATA qui mappe dans% ProgramData% (c: \ ProgramData) dans XP et mappe dans c: \ Documents and Settings \ Tous les utilisateurs \ Données d'application

N'hésitez pas à créer un dossier dans votre programme d'installation et à définir la liste de contrôle d'accès de sorte que tout le monde puisse y écrire.

N'oubliez pas que COMMON_APPDATA a été implémenté dans la version 5 de la bibliothèque de contrôles communs, ce qui signifie qu'elle est disponible dans Windows 2000 et versions ultérieures. Sous NT4, vous pouvez créer ce dossier dans votre répertoire d’installation. Sous Windows 98 et versions antérieures, cela n’a aucune importance, car ces systèmes ne disposent de toute façon pas d’un système d’autorisation.

Voici un exemple de code InnoSetup permettant de créer ce dossier:

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

Autres conseils

Je ne suis pas sûr qu'il existe un seul chemin d'accès vers lequel tous les utilisateurs non administrateurs sont autorisés à écrire.

Je pense que le bon serait <User>\Application Data

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top