Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Probleme mit Registry und Dienst (https://www.delphipraxis.net/10227-probleme-mit-registry-und-dienst.html)

hm988 14. Okt 2003 13:02


Probleme mit Registry und Dienst
 
hallo,

ich habe einen Dienst erstellt, keine Probleme mehr :bouncing4:

jetzt wollte ich werte au sder Registry auslesen, auslesen das Funktioniert aber nicht
habe das selbe schon mit einer Exe Probier da funktioniert alles,

--> der Key wird geöffnet aber kann den wert nicht finden obwohl er sicher da ist

kann mir jemand weiterhelfen ??

Gruß Steven

Chewie 14. Okt 2003 13:11

Re: Probleme mit Registry und Dienst
 
Eigentlich sollte das so funktionieren, aber ich habe einen Verdacht: Kann es sein, dass du aus HKEY_CURRENT_USER Werte auslesen willst, die für dich als eingeloggten Benutzer gelten?

hm988 14. Okt 2003 14:06

Re: Probleme mit Registry und Dienst
 
ja meine werte liegen unter HKEY_CURRENT_USER und ich bin als admin angemeldet,

aber hast du eine idee wie ich das doch hinbekomme evtl nicht un HKey_CURRENT_USER
oder was anderes ( ist egal wo die werte später liegen)

danke für die schnelle antwort

Gruß

Luckie 14. Okt 2003 14:08

Re: Probleme mit Registry und Dienst
 
Nun ja, der Service läuft auf dem System Konto. Damit hat er einen andern CURRENT_USER Zweig in der Registry. Wie man das jetzt allerdings lösen könnte, weiß ich im Moment auch nicht.

Chewie 14. Okt 2003 14:17

Re: Probleme mit Registry und Dienst
 
Eine Möglichkeit wäre, die Daten unter HKEY_LOCAL_MACHINE zu speichner. Das Systemkonto hat standardmäßig Schreibrechte darauf (glaub ich). Wenn dein Benutzer nun über Adminrechte verfügt, kannst du dort auch schreibend zugreifen.

Eine andere Möglichkeit wäre, den aktuell eingeloggten User zu ermitteln bzw. dessen SID, welche den Schlüsselnamen der Registry-Daten des eingeloggten Users unter HKEY_USERS darstellt. Dort hast du nun Zugriff auf die Daten, die für den eingeloggten Benutzer HKEY_CURRENT_USER entsprechen.

Wie das aber nun programmiertechnisch zu bewerkstelligen ist, kann ich dir leider auch nicht sagen. Abber hoffentlich andere, die auf dem Gebiet mehr Erfahrung haben.

hm988 14. Okt 2003 15:45

Re: Probleme mit Registry und Dienst
 
also ich hab die Werte über mein Einstellprogramm jetzt einfach unter einen in LOCAL_MACHINE
angelegten Schlüssel abgelegt und jetzt kann ich Sie daraus auch von meinen Dienst lesen
und schreiben :bouncing4:

hätte ich eigentlich auch drauf kommen müssen, dass ein Dienst ja Systemweit funktionieren muss
und nicht nur für einzelne Benutzer, denke für solche sachen gibts auch LOCAL_MACHINE :wall:



danke für die schnel Hilfe

sakura 14. Okt 2003 16:20

Re: Probleme mit Registry und Dienst
 
Deine jetzige Lösung ist imho die Beste. Allerdings möchte ich der Vollständigkeit halber sagen, daß Du in der Diensteverwaltung den Dienst auch zwingen kannst unter dem Sys-Admin Konto zu laufen - dann müsste die alte Variante auch wieder gehen. Aber wie bereits angedeutet: schlechte Idee

...:cat:...

DataCool 14. Okt 2003 16:45

Re: Probleme mit Registry und Dienst
 
Du könntest das ganze auch umgehen, indem Du Deine Daten in eine Datei und nicht in die Registry schreibst.

Gruß Data

Der Felertoifel 15. Okt 2003 23:32

Re: Probleme mit Registry und Dienst
 
Zitat:

Zitat von DataCool
Du könntest das ganze auch umgehen, indem Du Deine Daten in eine Datei und nicht in die Registry schreibst.

Wozu wurde dann die Registry erfunden? Um sie zu umgehen?

Der Vollständigkeit halber:
Unter HKU findet man anhand der Textform der SIDs der eingeloggten Benutzer auch die anderen Hives. Wenn ein Hive mal nicht geladen ist, lädt man ihn einfach nach (bestimmte Privilegien sind notwendig, die hat der Service unter LocalSystem aber allemal). HKCU ist eh nur ein Link auf den entsprechenden Eintrag unter HKU für den aktuellen Benutzer.
Das Ganze Laden und Entladen der Hives macht allerdings nicht viel Sinn, weshalb eine der obigen Methoden wohl weit besser wäre! Insbesondere jene mit HKLM.


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