このテンプレートは、Visual C++でWindowsサービスを作成するためのテンプレートです。
Microsoftのドキュメントを必ず読んで下さい。サンプルはC#だけどWindowsサービスの何たるかまでは変わりません。
Consoleセッションで実行した時の処理を書く。ただし、ビルドして生成される実行ファイルは、コマンドライン引数無しでは起動しませんので、リリースする際は、起動時に適当な文字列でもいいので、何かしらの引数が渡されるようにバッチファイルを作成する等をして下さい。
WinMainからのコマンドライン引数の型を変更することができます。変更方法はこのヘッダーにコメントで記載してあります。
Windowsサービスをインストール、または実行する際に必要な情報が記述されています。ご自身が制作するWindowsサービスに合わせて変更して下さい。
ServiceMainからのコマンドライン引数の型を変更することができます。変更方法はこのヘッダーにコメントで記載してあります。
サービスの名前
サービスの表示名
サービスの説明
サービスのスタートオプション。値はここのdwStartTypeで書かれている通りです。
サービスを遅延開始にするかどうかのフラグ。ここをtrueにする場合、StartTypeはSERVICE_AUTO_STARTになります。
サービスを実行するユーザーアカウント。これをNULLにすると、LocalSystemアカウントになります。その他のユーザーの場合はソースコードのコメントを参照して下さい。
サービスに管理者特権が必要かどうかのフラグです
ServiceProcess(ServiceMainProcess.h内に定義)クラスを継承するクラスを定義してService_MainProcessをoverrideして定義し、最後にGetServiceProcessInstance関数を定義し、最初に定義したクラスをポインター型で返して下さい。
本テンプレートを利用される方が定義するメイン関数は、Console_MainProcess関数とService_MainProcess関数の2つです。
Consoleセッションにおける処理を書くメイン関数です。
Windowsサービスとして実行する処理を書くメイン関数です。
Console_MainProcess関数は、デフォルトではinstallとuninstallが予約済みとなっております。(変更可)
Service_MainProcess関数にはありません。
このテンプレートは、MITライセンスで公開しております。
ソースコード例 (制作中)
- このテンプレートを使ったとしても、Microsoftが決めたルールからは逃れられません
- このテンプレートでは、プロセスを占有するサービス(Win32 Own Process)のみ作ることができます
- Windowsサービスの開発以外で使わないで下さい。