Mein Gott jetzt hab ichs....
Es fehlt tatsächlich was. Da du keinen eingenen Thread abspaltest, hast du mit deiner Execute Methode natürlich sowas wie eine Endlosschleife, und die Anweisungen an den Service können gar nicht verarbeitet werden.
Du musst in diese Schleife ähnlich wie bei
GUI programmen sowas wie Application.ProcessMessages einbauen.
Im Service heist das dann ServiceThread.ProcessRequests(false);
Also:
Delphi-Quellcode:
procedure TService1.ServiceExecute(Sender: TService);
var
sleepCnt: Integer;
begin
AllowStop := true;
stopServ := false;
sleepCnt := 0;
while not stopServ do
begin
sleep(100);
inc(sleepCnt);
if (not stopServ) and (sleepCnt >= 10) then
begin
sleepCnt := 0;
beep;
end;
ServiceThread.ProcessRequests(false);
end;
end;
Dann sollte es gehen.
Gruss