2011-12-19 3 views
1

私は、このメソッドを使用しています:How to make a .NET Windows Service start right after the installation?Windowsサービスのパスパラメータ

ポストは、「ステップバイステップの手順を掲示」で始まります。レジストリを使用せずにOnStart関数にパラメータを渡すにはどうすればよいですか?

このメソッドでパラメータを渡すことができますMain(string[] args)。私はmyapp.exe -installと呼んでいます。 myapp.exe -install path="c:/bla bla"に電話します。

また、パスパラメータを "OnStart"に移動します。 My OnStartは、この例のYourServiceオブジェクトに存在します。

答えて

0

あなたはアプリケーション名 myapp.exe/iを渡して、あなたのparamsチェックで、/ iがそのコード内のコマンドライン引数にあるかどうかを確認して、アプリケーションパスを割り当てることができます。 「によって」コンソールアプリケーションへのparamsを渡すにGoogle検索を行う。..同じ理論がパラメータ配列が、中に手動で設定することができます引数に... .. http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onstart.aspxから

1

引数を適用しますservicのプロパティウィンドウ サービスコンソールで[ce]をクリックします。コンソールに入力された 引数は保存されません。サービスが コントロールパネルから開始されると、サービスは1回限り サービスに渡されます。 が自動的に開始されたときに存在する必要がある引数は、 サービスのレジストリキー (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \)のImagePath文字列値に配置できます。 GetCommandLineArgsメソッドを使用して、レジストリから引数を取得できます。例:string [] imagePathArgs = Environment.GetCommandLineArgs();.

あなたの例を使用して、サービスコンソールで-install path="c:/bla bla"を入れたいと思いますが、つまり、あなたがそれをあなたのサービスが開始され、すべての時間を行う必要があるだろう、保存するつもりはないので、これはほとんど満足のいくものです。あなたは登録ルートに行くことができますが、あなたはそれをしたくないと言っています。気になる唯一のオプションは、何らかの種類のサービス設定ファイルです。