我写了一个小服务,它基本上只是将一些文本写入.txt文件,而只是不这样做。我在没有服务的情况下对其进行了测试,并编写了文件。
procedure TMyService.ServiceExecute(Sender: TService);
const
SecBetweenRuns = 10;
var
Count: Integer;
begin
Count := 0;
MyFileWriter:= TMyFileWriter.Create;
while not Terminated do
begin
Inc(Count);
if Count >= SecBetweenRuns then
begin
Count := 0;
//Here i just try to write a .txt file
MyFileWriter.WriteFile();
end;
Sleep(1000);
ServiceThread.ProcessRequests(False);
end;
end;
我需要此项服务的特殊权利吗?
谢谢您的回答。我重建服务以使用线程。它仍然不起作用,但是我现在知道了问题。
if FindFirst('*.log', faAnyFile, SearchResult) = 0 then
begin
repeat
sl := InputReader.ReadLog(SearchResult.Name);
...
我在SearchResult.Name上获得一个AccessViolation。SearchResult属于TSearchRec类。就像我之前说过的,如果我不将程序作为服务启动,它就可以正常工作。