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

Source: https://habr.com/ru/post/J102826/


All Articles