![]() |
Re: Verzeichnisrechte unter Vista
hoika hats erfasst. Alle Anwendungsdaten gehören in das "Anwendungsdaten"-Verzeichnis des Systems/Benutzers.
Das EINZIGE was unter Programme liegen sollte, sind statische Daten (Ressourcen etc.) und die Anwendungen. Sich ändernde Dinge wie Zinsdaten sollten grundsätzlich unter
Delphi-Quellcode:
gespeichert werden!
var
path: array[0..MAX_PATH] of char; begin SHGetFolderPath( 0, CSIDL_APPDATA, 1, 0, @path[0]); SHGetFolderPath( 0, CSIDL_LOCAL_APPDATA, 1, 0, @path[0]); SHGetFolderPath( 0, CSIDL_COMMON_APPDATA, 1, 0, @path[0]); end; // Code ungetestet! Was das Update angeht: Normale Nutzer haben keinerlei Schreibrechte unter Programme, nur Admins dürfen das. PUNKT. Ich bin mir nicht mal sicher, ob unter Vista überhaupt Standardnutzer die Schreibrechte dafür bekommen könnten ... Entweder du nutzt den Update-Dienst oder du drehst den Spieß um: Nicht die Clients holen sich das Update vom Server (Intranet?), sondern der Server startet ein Tool mit Adminrechten, dass die neuen Daten an die Clients verteilt - sofern das bei euch gehen würde. edit: Delphi-Code korrigiert |
Re: Verzeichnisrechte unter Vista
Zitat:
Gruss EL |
Re: Verzeichnisrechte unter Vista
Hi,
könnte man diese Berechnungen nicht in Module (Plugins, BPLs) auslagern und diese in den genannten Verzeichnissen ablegen? mfG mirage228 |
Re: Verzeichnisrechte unter Vista
Zitat:
Ich frage mich ohnehin, wie ich dll´s ersetzen soll, wenn sich mal wieder eine zugekaufte Lib ändert... Gruss EL |
Re: Verzeichnisrechte unter Vista
Zitat:
Bei 5000 Usern könnte es sich aber lohnen, das über scriptgesteuerte MSI-Updates zu bewerkstelligen. Grüße, Messie |
Re: Verzeichnisrechte unter Vista
Zitat:
Im Moment speichere ich die Zins- und LizenzUpdates(verschlüsselt) in %program_path%\meineFirma. Die vom Programm erzeugten Hypothekendateien (xml) in %program_path%\meineFirma\Daten. Was schlagt Ihr vor, wo ich die Daten nun hinpacken soll? Ich möchte die Anwendung nicht für Vista UND XP getrennt pflegen müssen, sondern eine Anwendung, welche auf beiden Systemen läuft. Obenauf speichere ich einige Dinge in der Registry unter HKEY_CURRENT_USER ... Achja, meine Entwicklungsumgebung läuft auf XP64 Gruss EL |
Re: Verzeichnisrechte unter Vista
Was spricht dagegen die vorgeschlagenen Verzeichnisse zu nehmen? Wobei ich CSIDL_APPDATA bevorzugen würde.
|
Re: Verzeichnisrechte unter Vista
Zitat:
Sollte dann doch so ok sein? Wie komm ich an die Ordner? Denn die sind ja auch von Version zu Version unterschiedlich. Ich habe es mit DE, NL und EN Versionen von XP, XP64, Vista, Vista64 Gruss EL |
Re: Verzeichnisrechte unter Vista
War das nicht von Luckie?
Delphi-Quellcode:
Das sollte auf allen Systemen funktionieren.
function GetShellFolder(CSIDL: integer): string;
var pidl : PItemIdList; FolderPath : string; SystemFolder : Integer; Malloc : IMalloc; begin Malloc := nil; FolderPath := ''; SHGetMalloc(Malloc); if Malloc = nil then begin Result := FolderPath; Exit; end; try SystemFolder := CSIDL; if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then begin SetLength(FolderPath, max_path); if SHGetPathFromIDList(pidl, PChar(FolderPath)) then begin SetLength(FolderPath, length(PChar(FolderPath))); end; end; Result := FolderPath; finally Malloc.Free(pidl); end; end; Grüße, Messie |
Re: Verzeichnisrechte unter Vista
Die von Luckie ist wohl die 'sauberste'. Schnelle Lösungen hab ich oben gepostet - die sollten es auch tun. Hier nochmal der Hinweis auf das Video, dort wird das Ganze erklärt!
Da du in der Registry auf CURRENT_USER zugreifst gehe ich davon aus, dass dein Programm auch nur für den jeweiligen Benutzer und nicht für alle Benutzer des Computers gedacht ist. Ich würde daher auch wie Luckie meinte, CSIDL_APPDATA vorschlagen. Damit bekommst du mit seiner Funktion unter XP bei mir z.B. "C:\Dokumente und Einstellungen\Besitzer\Anwendungsdaten" - und auf anderen Systemen das entsprechende Verzeichnis. Und wenn du die Daten doch für alle Nutzer eines Computers verfügbar machen möchtest, wäre CSIDL_COMMON_APPDATA dein Freund. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz