AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dienst soll aus Registry lesen - Key existiert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Dienst soll aus Registry lesen - Key existiert nicht

Ein Thema von Susanne · begonnen am 28. Okt 2004 · letzter Beitrag vom 28. Okt 2004
Antwort Antwort
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#1

Dienst soll aus Registry lesen - Key existiert nicht

  Alt 28. Okt 2004, 12:09
Hallo,

Ich habe einen Dienst, der im Hintergrund laufen soll und dieser benötigt Daten aus der Registry. Bevor ich die Unit in den Dienst aufgenommen habe, hat dies einwandfrei funktioniert, er hat aus der Registry gelesen. Nun hab ich die Unit in meinen Dienst übernommen und auch nichts dran geändert, nun sagt er mir aber, das der Schlüssel nicht existiert.

Wie das?

RootKey ist HKEY_CURRENT_USER oder HKEY_LOCAL_MACHINE darunter dann 'Software\Firma\TMService\7.0'

Warum soll der KEY nicht exitieren, er ist vorhanden!
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dienst soll aus Registry lesen - Key existiert nicht

  Alt 28. Okt 2004, 12:18
HKCU ist der Registryzweig des angemeldeten Bneutzers. Der Dienst läuft unter dem Systemkonto und hat damit einen eigene HKCU Zweig und in dem muss der Schlüssel nicht existieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Dienst soll aus Registry lesen - Key existiert nicht

  Alt 28. Okt 2004, 12:31
Na ja, wenn sie schreibt es unter HKCU oder HKLM, dann könnte man vllt. noch auf HKLM ausweichen. Aber wie ist das mit der User-SID? Wenn ich die in einem Dienst ermittle, der im Systemkonto läuft, dann erhalte ich vermutlich die System-SID? Oder? Wenn es die SID des angemeldeten Users wäre, dann hätte ich das vorgeschlagen: SID ermitteln und mal unter HKEY_USERS schauen.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: Dienst soll aus Registry lesen - Key existiert nicht

  Alt 28. Okt 2004, 12:50
Was passiert denn, wenn du den Dienst unter deinem Konto laufen lässt?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Dienst soll aus Registry lesen - Key existiert nicht

  Alt 28. Okt 2004, 13:11
gut mittlerweile hackt es dann nicht mehr am finden des keys, aber danach bleibt er irgendwie hängen. Wie kann ich denn einen Dienst debuggen, so dass ich mir schritt für schritt ansehen kann, was in den einzelnen Variablen drin steht und so weiter?
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: Dienst soll aus Registry lesen - Key existiert nicht

  Alt 28. Okt 2004, 13:17
Hi Susanne,

vielleicht hilft dir das?
Zitat von Die freundliche Delphi-Hilfe:
Das Debugging von Service-Anwendungen kann kompliziert sein, weil es innerhalb von sehr kurzen Zeitintervallen erfolgen muß:

1 Starten Sie zunächst die Anwendung im Debugger. Warten Sie ein paar Sekunden, bis sie fertig geladen ist.
2 Starten Sie schnell den Service von der Systemsteuerung oder von der Befehlszeile aus:

start MyServ

Sie müssen den Service schnell starten (innerhalb von 15 bis 30 Sekunden nach dem Starten der Anwendung), weil die Anwendung beendet wird, wenn kein Service gestartet wird.
Ein anderer Ansatz wäre, während der Ausführung der Service-Anwendung eine Verbindung zu dem Prozess herzustellen. (Das bedeutet, Sie starten zuerst den Service und verbinden ihn dann mit dem Debugger). Um eine Verbindung mit dem Prozess der Service-Anwendung herzustellen, wählen Sie Start / Mit Prozess verbinden und im angezeigten Dialogfeld die Service-Anwendung.

In einigen Fällen schlägt dieser zweite Ansatz aufgrund unzureichender Berechtigungen fehl. Falls das passiert, ermöglichen Sie mit Hilfe des Dienstkontroll-Managers die Ausführung Ihres Service im Debugger:

1 Erzeugen Sie zuerst den Schlüssel Image File Execution Options an der folgenden Position der Systemregistrierung:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

2 Legen Sie einen Unterschlüssel mit demselben Namen wie Ihr Service an (beispielsweise MYSERV.EXE). Diesem Unterschlüssel geben Sie den Wert Debugger vom Typ REG_SZ. Verwenden Sie als String-Wert den vollständigen Pfad zu Delphi32.exe.
3 Wählen Sie im Applet Dienstkontroll-Panel Ihren Service aus, klicken Sie auf Startup und markieren Sie das Kontrollkästchen Allow Service to Interact with Desktop.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 06:53 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