Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Alle User auslesen (https://www.delphipraxis.net/71480-alle-user-auslesen.html)

Christian Seehase 21. Jun 2006 15:54

Re: Alle User auslesen
 
Moin Martin,

wenn keine Reste verbleiben sollen, dann wäre es wohl besser keine userspezifischen Daten zu speichern.
Und ich kann kein Problem darin erkennen, dass userspezifische Daten erhalten bleiben können.
Dann kann sich jemand zumindest seine Konfiguration auf ein anderes System retten.
Zumindest sollte bei der Deinstallation die Option für den Erhalt der Daten gegeben sein.
Wenn die Daten im Profil gespeichert werden (wo sie ja auch hingehören), dürfte es ja kein Problem sein, durch alle Profile auf dem Rechner durchzugehen, und zu prüfen, ob sich dort Daten des Programmes befinden.

DGL-luke 21. Jun 2006 16:14

Re: Alle User auslesen
 
Zitat:

Zitat von Christian Seehase
dürfte es ja kein Problem sein, durch alle Profile auf dem Rechner durchzugehen

Darüber diskutieren wir seit anfang des threads und sind zu dem ergebnis gekommen, dass das "as designed" nicht möglich ist.

Christian Seehase 21. Jun 2006 17:06

Re: Alle User auslesen
 
Moin Lukas,

Zitat:

Zitat von DGL-luke
... und sind zu dem ergebnis gekommen, dass das "as designed" nicht möglich ist.

ich kann nur im Moment kein Problem darin sehen mittels FindFirst/FindNext/FindClose durch "Dokumente und Einstellungen" zu gehen. ;-)

Martin K 22. Jun 2006 17:36

Re: Alle User auslesen
 
Zitat:

Zitat von Christian Seehase
ich kann nur im Moment kein Problem darin sehen mittels FindFirst/FindNext/FindClose durch "Dokumente und Einstellungen" zu gehen. ;-)

Naja, das ist doch nun wirklich keine Lösung.

Angenommen ein User hat in seinen Eigenen Dateien (die sind auch in einem Unterordner von Dokumente und Einstellungen) eine INI-Datei, die rein zufällig genauso heißt wie die meines Programms, dann wird die auch gelöscht ...

Nein, es sollte schon irgendwie mit den AppData abhängig von den ausgelesenen Usernamen (Luckies Code) gehen...

Martin K 11. Jul 2006 14:19

Re: Alle User auslesen
 
Hi,

ich habe mich jetzt nochmal näher mit der Registry beschäftigt und v. a. mit der Frage, wie man spezielle Ordner-Pfade von anderen Benutzern (also nicht All Users und nicht der aktuelle User) bekommt.
Natürlich geht es hierbei um den Hauptschlüssel HKEY_USERS:
Unter <Nummer (mit Schleife durchgehen)>\Software\Microsoft\Windows\CurrentVer sion\Explorer und dem Eintrag Logon User Name kann der Benutzername und unter dem Unterschlüssel \Shell Folders können die Pfade der speziellen Ordner herausgefunden werden.

Meine erste Frage:
Kann dies verallgemeinern?
Funktioniert das auch bei älteren Windows-Versionen?

Der Eintrag Logon User Name ist allerdings nicht bei allen Schlüsseln vorhenden, bei folgenden ist er nicht zu finden:
S-1-5-18 //Mischung aus aktueller User, Network Service, WINDOWS
S-1-5-19 //LocalService
S-1-5-20 //NetworkService

Meine zweite Frage:
Kann man die auch verallgemeinern?
(Also dass S-1-5-19 für LocalService und S-1-5-20 für NetworkService steht)?
Auch ältere Win-Versionen?

Meine dritte Frage:
Fangen die Schlüssel für alle anderen Benutzer mit S-1-5-21... an?
Ist das allgemein so?
Auch ältere Win-Versionen?

Dann noch was:
Zu jedem Schlüssel gibt es noch einen Schlüssel der mit der selben Nummer beginnt und dann ein ..._Classes dahinter hat.
Diese enthalten jedoch keine Shell Folders.

Ach ja, und der Schlüssel .DEFAULT enthält dasselbe wie der Schlüssel S-1-5-18.


Wäre jetzt nett, wenn mir jemand bei meinen Fragen helfen könnte oder ist das auslesen der Shell Folders über die Registry evtl. nicht so der gute Weg ?
- Danke schonmal! -

ste_ett 11. Jul 2006 14:38

Re: Alle User auslesen
 
Benutzerspezifische Ordner bekommst du mit
Delphi-Quellcode:
SHGetSpecialFolderLocation()
. :)

Martin K 11. Jul 2006 14:46

Re: Alle User auslesen
 
Zitat:

Zitat von ste_ett
Benutzerspezifische Ordner bekommst du mit
Delphi-Quellcode:
SHGetSpecialFolderLocation()
. :)

Ja ich weiß, aber hier geht es um die benutzerspezifischen Ordner von anderen Benutzern, nicht unbedingt die des aktuellen Benutzers :wink:

Martin K 11. Jul 2006 16:32

Re: Alle User auslesen
 
Hab noch mal genauer (auf einem Rechner, auf dem mehrere Benutzer sind) in die Registry geschaut und festgestellt:
Unter HKEY_USERS sind doch nicht alle Benutzer zu finden.
:(
...sind doch nur: aktueller User, LocalService und NetworkService.

Frage:
Kann man denn überhaupt nicht über die Registry an die Einträge anderer User dran kommen ?
Hat denn jeder User seine "eigene Registry" ?

Wäre nett, wenn mir einer die einzelnen Schlüssel unter HKU genauer erklären könnte.
Zitat:

Zitat von Martin K
S-1-5-19 //LocalService
S-1-5-20 //NetworkService

Meine zweite Frage:
Kann man die auch verallgemeinern?
(Also dass S-1-5-19 für LocalService und S-1-5-20 für NetworkService steht)?
Auch ältere Win-Versionen?


Christian Seehase 11. Jul 2006 18:00

Re: Alle User auslesen
 
Moin Martin,

Zitat:

Zitat von Martin K
Nein, es sollte schon irgendwie mit den AppData abhängig von den ausgelesenen Usernamen (Luckies Code) gehen...

Ich habe nicht gesagt, dass Du einfach jede Datei löschen sollst, die so heisst, wie die Konfigurationsdatei Deines Programmes ;-)

Du kannst doch einfach durch "Dokumente und Einstellungen" gehen, baust Dir damit eine Liste der möglichen "echten" User auf (also ohne "All Users", "Default User" usw.), und gehst dann durch, ob sich dort ein entsprechender Pfad befindet, wie ihn Dein Programm angelegt hat.

Wenn sich das Programm nur userspezifisch installieren lässt, kannst Du fast schon das Filtern weglassen.
Es ist allerdings nicht unüblich bei der Grundkonfiguration, zumindest von Firmenrechnern, alle Programme als lokaler Administrator zu installieren, und zum Schluss dann das Administratorprofil in das Defaultuser-Profil zu kopieren, damit jeder Anwender bei der Anmeldung die Grundkonfiguration zur Verfügung hat. Bei entsprechend erstellten MSI-Installationen kann man sich das zwar sparen, aber die sind nun auch nicht so zahlreich ;-)

Trotzdem:
Ich halte nichts davon einfach solche Dateien zu löschen.

Übrigens hilft Dir "Logon User Name" nicht unbedingt, da der Anmeldename nicht als Profilname auftauchen muss.
Befindet sich der Rechner in einer Domäne, und wird ein Account umbenannt, so ändert sich nicht der Name im Profil, da der Profilpfad durch die User-SID zugeordnet wird, und nicht durch den Anmeldenamen.

Martin K 11. Jul 2006 18:35

Re: Alle User auslesen
 
Danke erstmal für Deine Antwort.
Aber das mit dem Durchsuchen überhaupt gefällt mir nicht so gut.

Ich glaube mit dem auslesen der Shell Folders aus HKU komme ich auch nicht weiter.
Oder gibt es irgendwie die Möglichkeit, spezielle Ordner anderer Benutzer über die Registry zu erhalten ?
Kann man überhaupt auf Einträge anderer Benutzer in der Registry zugreifen???


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr.
Seite 3 von 3     123   

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