WINDOWSのサービスプログラム開発
開発段階:
1、新規作成 - >その他 - >サービスアプリケーション
2、今のフレームワークプログラムを提供していることは、オープンサービス1ウィンドウを取るために持って、説明するためにいくつかの属性があります。
AllowPause:許可するかどうかを中断
AllowStop:ストップを許可するかどうか
依存性:依存関係、サービスまたはグループに依存しているサービスのサービスの設定を開始
表示名:「サービス」ウィンドウが表示さの名のもとに
trueに設定し、次のことができた場合:インタラクティブWindowsのデスクトップとの対話のために、我々はサービスでフォームを表示したい場合は、この設定はtrue、別の必須stWin32サービス種別に設定する必要があります。
パスワード:パスワード
StartType:起動モード
私たちは、フォームとの対話をサービスにしたい場合は3、次の手順を実行します。
プロジェクトに新しいフォームを作成fmMain
その後のOnStartでサービス1でコードを書きます
手順TService1.ServiceStart(送信者:TService; varが開始:ブール);
ベギン
開始:=真;
Svcmgr.Application.CreateForm(TFmMain、fmMain)。
FmMain.show;
終わり;
OnStopコード
手順TService1.ServiceStop(送信者:TService; VAR停止:ブール);
ベギン
停止:=真;
FmMain.Free;
終わり;
サービスの開始時にこれが新しいフォームと表示されます
4、翻訳が完了した後、我々はサービス、インストール方法をインストールすることができます。
APPNAMEは/ウィンドウにcmdとインストールの実行、
如F:\帳\ DService \ Project1.exeをインストール/
サービスのインストールが完了するように、
5.同様に、このコマンドを削除すると、CMDウィンドウAPPNAME /アンインストール中に入力されます
如F:\帳\ DService \ Project1.exeを/アンインストール
その他について:
デバッグサービスプログラムについて1、
我々は、サービスが複数のフォームを持って開発する場合、デバッガは間違いなく大きな問題です
実際には、サービスプログラムは、仮定のコンパイル、常に条件をコンパイルすることにより、サービスプログラムや通常の実行可能プログラムを生成し、行ったり来たり、私たちはコンパイルするための条件を追加することができ、切り替えることを防止するために、標準のWin32プロジェクトのビットに変更することができます条件NormalAppは、次の場所で条件を指定してコンパイルする必要があります
プロジェクトファイル、基準ユニット
{$ IFDEF NormalApp}
フォーム、
{$のELSE}
SvcMgr、
{$ ENDIF}
プロジェクトの初期化
{$ IFDEF NormalApp}
Application.Initialize;
Application.CreateForm(TFmMain、FmMain)。
Application.Run;
{$のELSE}
そうでない場合はApplication.DelayInitializeまたはApplication.Installingその後、
Application.Initialize;
Application.CreateForm(TService1、サービス1)。
Application.Run;
{$ ENDIF}
このように、我々は/条件サービスの手順を切り替えるために追加することにより、コンパイルNormalAppと、ウィンドウの一般的なプログラムを削除することができます