C'è una cartella in entrambi WinXP e WinVista a cui tutti gli utenti hanno iscritto le autorizzazioni?
-
09-06-2019 - |
Domanda
Abbiamo una rete di app che viene installato nella cartella programmi.L'app stessa scrive alcuni file e crea una serie di cartelle per la sua app per cartella.Ma quando un normale utente di windows tenta di utilizzare la nostra applicazione si blocca perché l'utente non dispone di autorizzazioni di scrittura per la cartella app.C'è qualche cartella in entrambi WinXP e WinVista a cui tutti gli utenti hanno iscritto le autorizzazioni di default?Tutte le cartelle Utente, o qualcosa di simile?
Soluzione
Non c'è nessuna tale cartella.
Ma è possibile crearne uno.
C'è CSIDL_COMMON_APPDATA che in Vista delle mappe a %ProgramData% (c:\ProgramData) e in XP mappe c:\Documents and Settings\AllUsers\Dati Applicazioni
Sentitevi liberi di creare una cartella nel vostro programma di installazione e impostare le ACL in modo che ognuno può scrivere in quella cartella.
Tenete a mente che COMMON_APPDATA è stato implementato nella Versione 5 di la libreria di controlli comuni che significa che è disponibile in Windows 2000 e versioni successive.In NT4, è possibile creare la cartella nella directory di installazione in Windows 98 e sotto di essa, non importa comunque a causa di questi sistemi non avendo un sistema di autorizzazioni comunque.
Ecco alcuni esempi di InnoSetup codice per creare la cartella:
[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;
Altri suggerimenti
Io non sono sicuro che c'è un unico percorso che tutti gli utenti non amministratori hanno il permesso di scrivere.
Penso che quello corretto sarebbe <User>\Application Data