Windowsサービスを作成します

コンピューターの起動時にアプリケーションを実行する必要がある場合、私たちの多くはこの問題に直面しています。 もちろん、スタートアップにショートカットを置くこともできますが、どういうわけか間違っています。 また、コンピューターが再起動し、ユーザーがログインしなかった場合、アプリケーションも起動しません。



この状況で最も確実な解決策は、Windowsサービスを作成することです。



Studio 2010でサービスを作成する例、.Net C#catの下



手順1.プロジェクトを作成します。





Windowsサービステンプレートを選択して新しいプロジェクトを作成する







必要に応じてサービスクラスの名前を変更します。







そのようなウォーターコードを受け取りました:



namespace ExampleSrv

{

public partial class MyService : ServiceBase

{

public MyService()

{

InitializeComponent();

}



protected override void OnStart( string [] args)

{

}



protected override void OnStop()

{

}

}

}




* This source code was highlighted with Source Code Highlighter .








実際、これはサービスそのものです。

OnStartイベントとOnStopイベントを使用して、タスクを実装します。



ステップ2.インストーラーを追加します。



サービスを機能させるには、インストールする必要があります。

それをインストールするには、インストーラーが必要です。



右クリック... インストーラーの追加







これで、 serviceProcessInstallerserviceInstallerができました。



img04



最初に、 LocalSystemAccountの値を入れることができます。

2番目では、サービス名、説明を指定し、 StartType - Automaticを忘れずに入れます。







インストーラーの準備ができました。



ステップ3.ロギング。



サービスの実行内容、開始時、終了時、またはその他のことを確認できるようにするために、システムロギングを使用できます。

これは非常に簡単です。

ツールボックスからEventLogサービスにドラッグします







これがロギングの実行方法です。



public partial class MyService : ServiceBase

{

public MyService()

{

InitializeComponent();

}



protected override void OnStart( string [] args)

{

AddLog( "start" );

}



protected override void OnStop()

{

AddLog( "stop" );

}



public void AddLog( string log)

{

try

{

if (!EventLog.SourceExists( "MyExampleService" ))

{

EventLog.CreateEventSource( "MyExampleService" , "MyExampleService" );

}

eventLog1.Source = "MyExampleService" ;

eventLog1.WriteEntry(log);

}

catch {}

}

}




* This source code was highlighted with Source Code Highlighter .








ステップ4.インストール。



サービスをインストールするには、インストールユーティリティを呼び出して、パラメータとしてサービスへのパスを渡す必要があります。

これを行うために、このフォームのinstall.batを作成しました。



C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe D:\...\ExampleSrv\bin\Debug\ExampleSrv.exe

pause








serviceProcessInstallerの [ アカウント - ユーザー]フィールドの値を選択した場合、インストール中に、サービスを起動するアカウントのログインとパスワードを入力する必要があります。 注意! ユーザー名が必要になる前にドメインを書く!



管理者権限でバッチファイルを起動し、最後に確認します。



コミットフェーズが正常に完了しました。

トランザクションインストールが完了しました。



これは、サービスがインストールされていることを意味します。

私たちはチェックします:







確立されています。





数回、開始および停止します。 ログを確認します。







サービスがいつ開始および停止したかがわかります。





サービスの準備ができました。





ここから部分的に取った資料:

msdn.microsoft.com/en-us/library/zt39148a(VS.80).aspx



All Articles