忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

サービスプログラムの作り方について・その1

サービスプログラムの作成を行うことがあったので、作成方法の最初の部分を記します。
サービスプログラムはフォームを持つプログラムとは全く性格が異なり、作成手順も異なりますので、 手順を追いながら作成していきます。 尚、今回の作業を行うには、Windowsの管理者権限でログインしておいてください。

先ず、VisualStudioを起動し、新しいプロジェクトの作成を行います。 「新しいプロジェクト」ウインドウが表示されたら、テンプレートの中のVisualBasicを選択し、更に Windowsサービス を選択すると以下の様な表示なります。


「名前」が「WindowsServices1」となっているのを、仮に「TestService」に変更し、「OK」ボタンを押下します。


尚、画面はプロジェクト名を「TestService」と変更し、更に「TestService.vb[デザイン]」のプロパティで、「ServiceName」も「TestService」に全て変更しました。
ここをクリックするとコードビューに切り替わります。のリンクをクリックします。 すると、Service1.vb の内容が以下の様に表示されます。

ソースとしては以下の様になります。

Public Class TestService

    Protected Overrides Sub OnStart(ByVal args() As String)
        ' サービスを開始するコードをここに追加します。このメソッドによって、
        ' サービスが正しく実行されるようになります
    End Sub

    Protected Overrides Sub OnStop()
        ' サービスを停止するのに必要な終了処理を実行するコードをここに追加します。
    End Sub

End Class

OnStart プロシージャと OnStop プロシージャのサービスへの機能追加を行い、再定義する他のすべてのメソッドを上書きします。
OnStart プロシージャは、「コントロールパネル」「管理ツール」「サービス」で起動される、画面の中で、各サービスでの「開始」操作に対応する処理を記述します。 また、OnStop プロシージャは、各サービスでの「停止」操作に対応する処理を記述します。

最初のテストなので、このままの状態でサービスを作成し、インストール行います。
「TestService.vb[デザイン]」を表示し、デザイン上で右クリックでメニューを表示させて、「インストーラーの追加」をクリックします.

インストーラーのコントロールがプロジェクトに追加されて、以下の様な表示なります.

[ProjectInstaller][デザイン] ビューで、[ServiceInstaller1] を選択します。

[プロパティ] ウィンドウで、ServiceName プロパティが TestService に設定されていることを確認します。
「ソリューション エクスプローラー」「ソリューション'TestService'」を選択し、VisualSutudioのメニューの「ビルド」「ソリューションのビルド」を選択し、ビルドを行います.

尚、ここでひとつ忘れていたのですが、「TestService」プロパティ設定で、スタートアップオブジェクト「TestService」に設定しておきます.


では、作成されたサービスを実際に登録してみます。 登録方法は、Windows[スタート] メニューまたは [スタート] 画面で、[Visual Studio][Visual Studio ツール][開発者コマンド プロンプト] の順に選択します。

Visual Studio コマンド プロンプトが表示されますので、インストールする場合は以下のコマンドを入力します。

  • installutil C:\TestService\TestService\bin\Debug\TestService.exe

アンインストールする場合は以下のコマンドを入力します。

  • installutil /u C:\TestService\TestService\bin\Debug\TestService.exe

インストールコマンドを実行すると以下の様に、ログイン時のユーザー名とパスワードを聞いてきますので、 それぞれを入力して作業を進めます。
尚、ユーザー名の注意ですが、ログインしている私のマシンのAdmin属性のユーザを設定したのですが、ユーザ名の先頭に「.\」(ドット¥)が必要でした。

インストールが完了すれば以下の表示になります。


これでサービスに登録が終わりましたので、「コントロールパネル」⇒「管理ツール」⇒「サービス」を起動します。 サービスの一覧の中に「TestService」があると思いますので、サービスの「開始」を行います。

以下の様に、サービスの状態が「開始」になります。

サービスを止めるには「停止」を指定します。


アンインストールを実際に行った様子を以下に示します。

結果、サービス一覧から「TestService」が削除されました。



今回はサービスプログラムの生成と登録までを行っただけで、実際に何かの処理を行うわけではありません。
今後は、何かの処理を行う部分を組み込んで、サービスプログラムについて考察していきたいと思います。

関連する記事

サービスプログラムの作り方について・その2
サービスプログラムの作り方について・その3(メイン処理をスレッド化)
サービスプログラムの作り方について・その4(メイン処理内で別のスレッドを呼出す)

おすすめ書籍












PR

コメント

コメントを書く