Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Profil temp verzeichniss (https://www.delphipraxis.net/24585-profil-temp-verzeichniss.html)

HomerGER 23. Jun 2004 10:59


Profil temp verzeichniss
 
Hallo
Ich versuche an die Im Profil stehenden Temp verzeichnisse ran zu kommen
GetSpecialFolderLocation gib es leider nicht her
Ich möchte gern alle temp verzeichnisse auslesen
defalut, User usw.

weiß jemand rat ?

alcaeus 23. Jun 2004 11:05

Re: Profil temp verzeichniss
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sieh mal in Delphi unter den Umgebungsoptionen nach, dort gibts eine Registerkarte "Umgebungsvariablen". Diese kannst du mit der beigefügten Unit auslesen.
Weiters sind die Userabhängigen Pfade in der Registry:
HKCU\Software\Microsoft\Windows\CurrentVersion\Exp lorer\UserShellFolders

Greetz
alcaeus

HomerGER 23. Jun 2004 11:15

Re: Profil temp verzeichniss
 
hmmm
das sieht gut aus nur er zeigt mir mein eignes Profil nicht aber alle Profile

alcaeus 23. Jun 2004 11:17

Re: Profil temp verzeichniss
 
Achso, hab nicht den ganzen Text gelesen :roll:
Um alle Profildaten auszulesen, musst du Administrator sein, denn diese Daten befinden sich in der Datei NTUSER.DAT, welche sich im Verzeichnis "C:\Dokumente und Einstellungen\<Benutzer>" befindet. Du musst dich also mit einer Fremdregistrierung verbinden, ich weiß nicht ob und wie das in Delphi geht.

Greetz
alcaeus

Luckie 23. Jun 2004 11:26

Re: Profil temp verzeichniss
 
Wieso so umständlich? :gruebel: Einfach MSDN-Library durchsuchenGetTempPath aufrufen und gut ist. Liefert unter Windows 9x das Temporäreverzeichnis und unter NT ff. das Temporäreverzeichnis für den Benutzer, welches im Profilpfad liegt.

MathiasSimmack 23. Jun 2004 11:32

Re: Profil temp verzeichniss
 
Als Ergänzung zu Luckie -

Im Normalfall liest man die Umgebungsvariablen mit [msdn]"GetEnvironmentVariable"[/msdn] aus. Damit erhält man aber idR nur die benutzer-abhängigen Variablen. Unter 9x-Systemen sollte dies kein Problem sein, da dort die Variablen IMHO alle in der "autoexec.bat" initialisiert werden.

Wie dem auch sei, für NT-Systeme fällt mir auf die Schnelle die Lösung von Tino im DF ein, in der aber keine speziellen Rechte notwendig sind, weil man a) den eigenen Schlüssel mit den eigenen Rechten problemlos auslesen können sollte, und b) die Registry auch "nur lesend" öffnen kann, um bspw. auf HKLM zuzugreifen.

Evtl. müsste Tino das ergänzen, denn ich sehe gerade, dass er bei "GetSystemWideEnvironmentVariable" nur
Delphi-Quellcode:
 Reg := TRegistry.Create;
stehen hat. Häng ein "(KEY_READ)" nach "Create" an, und es sollte auch ohne Admin- o.ä. erweiterte Rechte keine Probleme beim Lesen von systemweiten Umgebungsvariablen geben.

Luckie 23. Jun 2004 11:36

Re: Profil temp verzeichniss
 
Ohne mich jetzt selbst loben zu wollen, aber ich halte meinen Weg für den besten, weil das wohl auch der offizielle Weg von MS ist. Longhorn wird die Win32API noch unterstützen, aber wer weiß, ob es die Registry noch gibt und wenn ja, wie sie aufgebaut ist, dann kann der Weg über die Registry zum technischen K.O. für die Anwendung führen.

HomerGER 23. Jun 2004 11:39

Re: Profil temp verzeichniss
 
hmm
also
ich habe mir eigentlich das so gedacht
lies erst aus was es Für BenutzerProfile gibt - erstes Problem - komme noch nicht ran
und dann übergib das Benutzerprofil um ans temp verzeichnis zu kommen

Ps nur XP und die registry wollte ich eigentlich nicht schauen

Luckie 23. Jun 2004 11:40

Re: Profil temp verzeichniss
 
Warum so umständlich? Du hast oben genug Tipps bekommen, wie es einfachher geht.

HomerGER 23. Jun 2004 11:50

Re: Profil temp verzeichniss
 
die functionen liefern mir aber immer nur mein eigens Temp verzeichnis zurück
und ich möchte sie von allen auslesen

Luckie 23. Jun 2004 12:03

Re: Profil temp verzeichniss
 
Zitat:

Zitat von HomerGER
hmm
also
ich habe mir eigentlich das so gedacht
lies erst aus was es Für BenutzerProfile gibt - erstes Problem - komme noch nicht ran
und dann übergib das Benutzerprofil um ans temp verzeichnis zu kommen

Das geht aber nur, wenn der Profilpfad nicht geändert wurde. Meine "eigenen Dateien" liegen zum Beispiel wo anders aber den Ordner gibt es noch im Profilpfad.

HomerGER 23. Jun 2004 12:44

Re: Profil temp verzeichniss
 
das habe ich befürchtet
mist
aber irgendwo mus ich doch an diese daten rankommen
wo jeder benutzer seine ordner hat

MathiasSimmack 23. Jun 2004 13:02

Re: Profil temp verzeichniss
 
Zitat:

Zitat von Luckie
Ohne mich jetzt selbst loben zu wollen, aber ich halte meinen Weg für den besten, weil das wohl auch der offizielle Weg von MS ist.

Da hast du ja auch recht, aber es ging HomerGER wohl auch zusätzlich um die systemweite Umgebungsvariable für den TEMP-Ordner. Die lokale ist mit "GetTempPath" nicht das Problem, an die globale kommt man dann aber wohl nur über die Umgebungsvariable ran.

Ansonsten stecken die Infos zu den anderen Benutzern ja auch in der Registry. Man müsste mal versuchen, die SID des Benutzers zu ermitteln, und dann könnte man unter HKEY_USERS lesend zugreifen. Aber inwieweit das sicher ist und auch fehlerlos funktioniert ... Ich habe keine Ahnung ...

MathiasSimmack 23. Jun 2004 13:09

Re: Profil temp verzeichniss
 
Oh, übrigens, @Luckie: Kann man nicht auch mit "NetUserGetInfo" an solche Infos kommen? Mir war als hättest du irgendwo ein Programm dafür gehabt.

Luckie 23. Jun 2004 13:13

Re: Profil temp verzeichniss
 
Könnte klappen. Zu mindest den Profilpfad müsste man ermitteln können. Ein Unit dazu liegt auf meiner Homepage.

HomerGER 23. Jun 2004 14:03

Re: Profil temp verzeichniss
 
Das sieht doch schon cool aus - fast
über GetEnvironmentVariable und 'COMPUTERNAME'
komme ich auf den Server
und dann mit EnumUsers(server);
an alle User
admin
Gast
und ich

nur jetzt noch den path für die profile - da weiß aber leider nicht wo ich den herbekomme

und was ist mit ALLUUSER

ich muß doch jetzt den profilpath ermitteln dann das profil übergeben um dann wieder ans tmpverzeichniss zum kommen - man man

NicoDE 23. Jun 2004 15:47

Re: Profil temp verzeichniss
 
Zitat:

Zitat von HomerGER
und was ist mit ALLUUSER

http://msdn.microsoft.com/library/en...r_profiles.asp
GetAllUsersProfileDirectory, GetDefaultUserProfileDirectory, ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 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