AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Zugriff auf "Eigene Dateien" / "Registry" vom Dienst aus
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf "Eigene Dateien" / "Registry" vom Dienst aus

Ein Thema von greenmile · begonnen am 28. Feb 2011 · letzter Beitrag vom 2. Mär 2011
Antwort Antwort
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Zugriff auf "Eigene Dateien" / "Registry" vom Dienst aus

  Alt 1. Mär 2011, 12:45
War ein Fehler meinerseits, die Funktion war nicht aus der DLL geladen; jetzt funktioniert es, VIELEN DANK!

Für die Nachwelt:

1. WTS_SESSION_LOGON,WTS_CONSOLE_CONNECT und WTS_REMOTE_CONNECT im Dienst abfangen, lParam enthält die SessionID
2. WTSQueryUserToken(SessionID, hUserToken); // SessionID in hUserToken
3. ImpersonateLoggedOnUser(hUserToken); // Als User anmelden
4. phkRoot: HKEY;
RegOpenCurrentUser(KEY_READ, @phkRoot); // Registry mappen

Anschließend kann der Dienst so auf die CURRENT_USER zugreifen:

With TRegistry.Create do begin
RootKey := phkRoot; // Von RegOpenCurrentUser anstelle von HKEY_CURRENT_USER
...
End;

Um die Pfade auszulesen (Eigene Dateien), anstelle von Punkt 4 einfach "CreateEnvironmentBlock" aufrufen.

5. RevertToSelf; // Nicht vergessen: Ursprünglicher User, das Gegenteil von ImpersonateLoggedOnUser

Geändert von greenmile ( 1. Mär 2011 um 12:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: Zugriff auf "Eigene Dateien" / "Registry" vom Dienst aus

  Alt 1. Mär 2011, 15:01
Danke für die Rückmeldung
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Zugriff auf "Eigene Dateien" / "Registry" vom Dienst aus

  Alt 2. Mär 2011, 11:03
Damit der Dienst die Registry vom User öffnen kann, benötigt dieser Adminrechte!

oder

Du könntest beim Benutzer ein GUI-loses Tool starten (beim login), welches per IPC auf die User-Registry zugreift.
Der Dienst bedient sich dann dort.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 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