2012-04-12 4 views
3

私は、Windowsサービスに引数を渡す方法を知りたいだけです。問題は、私はWindowsアプリケーションを開発し、Onstart()メソッドから呼び出すことです。さて、私は別のプロジェクトから特定の関数を呼び出したいと思います。C#でWindowsサービスに引数を渡す方法は?

protected override void OnStart(string[] args) 
     { 

      Process.Start("C:\\Program Files\\macro.exe"); 

     } 

引数を指定してmacro.exeプロジェクト内の関数を呼び出したいとします。あなたがサービスに渡される引数を使用する場合は任意の提案

答えて

2

は、あなたが試すことができます:あなたが開始したプロセスのよりよい制御を持つことができ答える@Tudor使用していることを

Process.Start(@"C:\Program Files\macro.exe", String.Join(" ", args)) 

注意を、入力/出力/エラー、ショーをリダイレクト/ウィンドウや他の多くの素晴らしいものを隠す。

0

私はあなたが別のEXEの中で関数を呼び出すことができるのだろうかと思います。 共通DLLを作成し、macro.exeと独自のアプリケーションで参照することができます。それが選択肢でない場合は、ソケットまたはファイルシステムを使用してEXEと通信することができます。 たとえば、 EXE 2コマンドライン引数 "MyFunction"、 "Hello"上記の前のコメントに示されているように渡し、Exeはそれらの引数がMyFunctionを引数Helloで呼び出す必要があると推測し、EXEがそれを定義済みあなたはファイルからそれを読んでいます。

Exeが実行中で、コマンドラインを渡すことができない場合、Exeは入力ファイルをスキャンして、アプリケーションなどの外部ソースからコマンドを取得している可能性があります。それとも、それはあなたがそれにコマンドを発射するポートで聴くのが良い。

別のより先の解決策があるかどうかはわかりません。

関連する問題