Sar*_*ara 4 delphi service windows-services
有谁知道如何在Windows上调试Delphi编写的服务(服务应用程序)?
我正在制作一个 API,从 rclone 获取数据并将其显示在界面上,我想将其制作成 Windows 服务。如果您认为有什么可以帮助我的,我将不胜感激。
您可以像任何其他应用程序一样调试它。唯一的技巧是你必须先在SCM中启动服务,然后你可以将Delphi的调试器附加到服务进程中,然后调试就可以正常进行。
在我自己的服务中,我通常在事件中添加代码TService.OnStart以在属性中查找/debugger-style 参数TService.Param,如果存在,则IsDebuggerPresent()在等待循环中使用,直到调试器附加,然后再继续正常的服务逻辑。该值可以在 SCM 启动参数中传递。例如:
procedure TMyService.ServiceStart(Sender: TObject;
var Started: Boolean);
var
I: Integer;
StartTicks: DWORD;
begin
for I := 0 to Self.ParamCount-1 do
begin
if Self.Param[I] = '/debugger' then
begin
StartTicks := GetTickCount;
repeat
Sleep(Self.WaitHint-100);
Self.ReportStatus;
until IsDebuggerPresent or
((GetTickCount - StartTicks) >= 30000);
end;
end;
Started := True;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |