我在德爾福XE做了一個服務,將無法啓動在Windows 7中,從服務管理器提示時,我得到德爾福XE服務將無法啓動:錯誤1053
Error 1053: The service did not respond to the start or control reqquest in a timely fashion
我已經服務掛鉤與AfterInstall和OnExecute事件,這是我對事件的代碼:
procedure TAarhusRunner.ServiceAfterInstall(Sender: TService);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create(KEY_READ or KEY_WRITE);
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name, false) then
begin
Reg.WriteString('Description', 'Worker Service for Inversion Job Distribution');
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
procedure TAarhusRunner.ServiceExecute(Sender: TService);
begin
try
Self.Status := csRunning;
//start the loop
MainTimer.Interval := 5000; //MainTimer is declared in the .dfm
MainTimer.Enabled := True;
RecheckAndApplyTimer.Enabled := False;
while not Terminated do
begin
ServiceThread.ProcessRequests(true);
MainTimer.Enabled := False;
end;
except
on e: Exception do begin
MessageDlg(E.Message,mterror,[mbok],0);
exit;
end;
end;
end;
誰能告訴我什麼,我做錯了什麼?
這將是很好的你學習如何調試這種事情。從一個全新的空服務項目開始。這是否啓動,或者這是否也失敗,錯誤1053.這是你應該嘗試做的第一件事。 – 2014-09-30 08:44:19
@TOndrej,你確定?那麼你會如何提出一個在延遲中循環執行的服務呢? (請不要說了Thread.Sleep) – 2014-09-30 10:41:38
使用循環'WaitForSingleObject' /'WaitForMultipleObjects'會更好...... – whosrdaddy 2014-09-30 10:45:03