フレームワークを使用して、過去に Delphi 向けの多数のサービスを作成しました。コンソールのような機能でサービスを拡張したいと思います。
私が提供できる最も簡単な例は、コマンド プロンプトから次のようなサービス実行可能ファイルを実行したいというものです。
> myservice.exe /version
MyService Version 1.0
プロジェクト ファイルでは、パラメーターを処理し、サービスを初期化して完了する前に終了します。
If ParamStr(1) = '/version' then
begin
writeln ('MyService Version 1.0');
exit;
end;
// Other standard service launch code is after this for proper initialization
// when run as a service, i.e.
if not Application.DelayInitialize or Application Installing then
...
ただし、writeln
ステートメントを機能させるには、通常、プロジェクト ファイルにディレクティブが必要{$APPTYPE CONSOLE}
です。これにより、サービス アプリの Destroy イベントが中断されます。
{$APPTYPE CONSOLE}
Delphi Windows Service Appのディレクティブを使用せずに、標準出力をコンソールに接続する別の方法はありますか?