VisualStudio2008の場合
Windowsサービスプロジェクトを作成します。
サンプルコードとして、1分間隔でイベントログを出力するようにします。
自動で作成される「Service1.vb」にコードを書きます。
Public Class Service1 Private _timer As Timers.Timer Protected Overrides Sub OnStart(ByVal args() As String) ' サービスを開始するコードをここに追加します。このメソッドによって、 ' サービスが正しく実行されるようになります Me._timer = New Timers.Timer Me._timer.Interval = 1000 * 60 AddHandler Me._timer.Elapsed, AddressOf Timer_Elapsed Me._timer.Start() End Sub Protected Overrides Sub OnStop() ' サービスを停止するのに必要な終了処理を実行するコードをここに追加します。 Me._timer.EndInit() Me._timer.Dispose() End Sub Private Sub Timer_Elapsed(ByVal sender As Object, ByVal e As Timers.ElapsedEventArgs) EventLog.WriteEntry("Timer_Elapsed") End Sub End Class
次にインストーラを作成します。
まず、「Service1.vb」のデザイナ上で右クリックし「インストーラの追加」をクリックします。
「ProjectInstaller.vb」が追加されます。
ServiceInstallerコントロールのServiceNameプロパティを変更します。(サービス一覧に表示される名前です)
ソリューションにセットアッププロジェクトを追加します。
ソリューションエクスプローラで追加したセットアッププロジェクトを右クリックし「追加」→「プロジェクト出力」を選択します。
「プロジェクトの出力グループの追加」ダイアログより「プライマリ出力」を選択します。
ソリューションエクスプローラで追加したセットアッププロジェクトを右クリックし「表示」→「カスタム動作」を選択します。
表示されたカスタム動作エディタの「カスタム動作」を右クリックし「カスタム動作の追加」を選択します。
表示される「プロジェクトから項目を選択」ダイアログで「アプリケーションフォルダ」を選択し「OK」をクリックします。
つづいて表示されるダイアログから「WindowsService1(アクティブ)のプライマリ出力」を選択し「OK」をクリックします。
カスタム動作エディタの「インストール」、「確定」、「ロールバック」、「アンインストール」のそれぞれにプライマリ出力が追加されます。
あとはセットアッププロジェクトをビルドしインストールを実行します。
インストールの途中でユーザー名とパスワードを求められるので、
ユーザ名にコンピュータ名¥ログインユーザ名
パスワードにログインパスワードを入力します。
インストールが終了したらサービスを起動します。
Vistaの場合
コントロールパネル→管理ツール→サービスを起動し、サービス一覧に表示される「TestService」を開始します。
コントロールパネル→管理ツール→「イベントビューアを起動し、一分間隔でイベントログが出力されていることを確認します。
0 件のコメント:
コメントを投稿