1
0

More than 5 years have passed since last update.

C#でWindows Serviceを作る(4)

Posted at

概要

前回の記事C#でWindows Serviceを作る(3)の続き。
サービス操作やパワマネ系のイベントハンドラの実装を行います。

環境

Windows 10
Visual Studio 2017 Community

手順

サービス操作/パワマネ系のイベントハンドラを追加する

サービス管理ツールで一時停止/再開したときや、パソコンがサスペンド/レジュームしたときなどに、サービス側で他のシステムとの連携やファイル保存等の処理をしたいときが多々あります。
ということで、その際のイベントを受け取る処理を作ります。

ServiceBaseクラスの派生クラス(デフォルトだとService1.csというファイル。私のプロジェクトではServiceTest.cs)をデザイナーで開きます。
⇒ソリューションエクスプローラで該当ファイルをダブルクリックしてください。
その後、プロパティタブを表示します。

image.png

以下の4つのプロパティをTrueに設定します。
・CanHandlePowerEvent
・CanPauseAndContinue
・CanShutdown
・CanStop

次にイベントハンドラを記述します。
ServiceBaseクラスの派生クラスのコードを表示します。
ソースコード上で右クリックメニューを表示し、「クイックアクションとリファクタリング」を選択します。

image.png

以下のようなメニューが表示されるので、「オーバーライドを生成する...」を選択します。
image.png

以下のようなダイアログが表示されるので、
・OnContinue()
・OnPause()
・OnPowerEvent()
・OnShutdown()
のチェックを入れて、OKをクリックします。

image.png

そうすると、オーバーライドされたイベントハンドラが自動的に追加されます。
image.png

次回は、ここにログ出力の処理を追加していきます。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0