Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MultiUser-Anwendung entwickeln (https://www.delphipraxis.net/91674-multiuser-anwendung-entwickeln.html)

argonix 8. Mai 2007 14:47


MultiUser-Anwendung entwickeln
 
Hallo! Ich habe jetzt ein Projekt abgeschlossen, das, wenn man Administrtor ist, auch hervorragend funktionier. Als Admin hat man ja Schreibrechte auf (fast) alle Ordner und Dateien. Mein Programm schreibt aber Daten direkt ins Verzeichnis, in dem es liegt. Normale Benutzer haben darauf aber keine schreibrechte, weshalb es zu Fehlermeldungen kommt. Deshalb meine Frage: Welche systemvariable muss ich auflösen, um Dateien in das "Anwendungsdaten"-Verzeichnis des jeweiligen Benutzers zu schreiben? Wie kann ich das Setup-Programm dazu bringen, alles bei einer Deinstallation zu löschen? Und ist eine solche Anwendung noch unter Windows 98 usw. lauffähig?

[edit]Titel korrigiert :wink: [/edit]

SirThornberry 8. Mai 2007 14:52

Re: Multuser-Anwendung entwickeln
 
zum Beispiel mit SHGetSpecialFolderPath bekommst du die Pfade von definierten Ordnern.
Das du bei der Deinstallation von allen Nutzern die Einstellungen löschst wird da aber nichts. Ist aber auch gut so denn die Einstellungen sind für jeden Nutzer (werden ja auch durch den Nutzer angelegt bzw. dadurch das er das Programm nutzt). Wenn der Nutzer die Einstellungen also nicht mehr haben will muss er sie selbst löschen. Andernfalls bleiben diese erhalten so das er sie bei einer späteren Installation wieder zur Verfügung hat.

argonix 8. Mai 2007 14:54

Re: Multuser-Anwendung entwickeln
 
Zitat:

Wenn der Nutzer die Einstellungen also nicht mehr haben will muss er sie selbst löschen. Andernfalls bleiben diese erhalten so das er sie bei einer späteren Installation wieder zur Verfügung hat.
So sammelt Windows immer mehr Müll...
Läuft die Anwendung dann auch unter Win98?

SirThornberry 8. Mai 2007 14:58

Re: Multuser-Anwendung entwickeln
 
das ist von der csidl abhängig welche du SHGetSpecialFolderPath übergibst. Ob die entsprechende ID funktioniert findet sich im msdn

argonix 8. Mai 2007 15:17

Re: MultiUser-Anwendung entwickeln
 
Welche Unit muss ich für
Delphi-Quellcode:
SHGetSpecialFolderPath(Handle,aString,CSIDL_PROGRAMS,true);
einbinden?

SirThornberry 8. Mai 2007 15:21

Re: MultiUser-Anwendung entwickeln
 
laut hilfe shlobj
CSIDL_PROGRAMS steht für: C:\Documents and Settings\username\Start Menu\Programs
also den "Programme" Eintrag im Startmenü. Bist du dir sicher das du dort deine Daten ablegen willst?

du suchst glaub ich CSIDL_APPDATA (C:\Documents and Settings\username\Application Data)

da du willst das es auch unter win98 funktioniert könntest du auch einfach prüfen ob windows98 installiert ist und wenn dem der Fall ist legst du die Daten weiterhin wie bisher ab (denn Win98-Dateisysteme <> NTFS).

argonix 8. Mai 2007 16:10

Re: MultiUser-Anwendung entwickeln
 
Zitat:

laut hilfe shlobj
CSIDL_PROGRAMS steht für: C:\Documents and Settings\username\Start Menu\Programs
also den "Programme" Eintrag im Startmenü. Bist du dir sicher das du dort deine Daten ablegen willst?

du suchst glaub ich CSIDL_APPDATA (C:\Documents and Settings\username\Application Data)
:wall: :wall: Stimmt! Danke für die Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz