Ich habe einen Dienst, der in der serviceExecute-Methode einen Thread aufruft. In diesem Thread möchte ich in der Execute-Methode prüfen, ob in der Registry in einem bestimmten Eintrag ein bestimmter Wert steht und wenn ja soll er was machen, ansonsten übergehen. Sieht folgendermassen aus:
Delphi-Quellcode:
procedure TimeManagerThread.Execute;
var
neueinlesen: STring;
begin
FormCreate;
while not Terminated do
1* begin
//Registry auslesen
reg.RootKey:= HKEY_LOCAL_MACHINE;
//Gibt es den benötigten Key in Registry?
if reg.KeyExists('Software\TM\7.0\General') then
begin
reg.OpenKey('Software\TM\7.0\General', false);
neueinlesen:= reg.ReadString('again');
reg.CloseKey;
if (neueinlesen = '159') then
FormCreate;
2* end;
TimerTimer(self);
end;
Timer.Free;
ClockTimer.Free;
end;
Problem ist nun folgendes. Lasse ich den Teil zwischen 1* bis 2* weg, läuft das ganze einwandfrei, nehme ich das ganze aber mit in den Quellcode hinein, kann ich den Dienst starten, aber er lässt sich nicht mehr beenden.
Woran kann das liegen? Irgendwer eine Ahnung?