0

Visual StudioでC#を使用してアプリを作成しようとしていますが、バックグラウンドのままで、他のプログラムが1つの引数でアプリを起動すると、その引数で通知(別のフォーム)がポップアップ表示されます。

アプリを1つのプロセスだけで構成する必要があります。アプリの複数のプロセス/インスタンスは必要ありません。バックグラウンドのままにしておきたいのですが、誰かがMyApp.exe「これは通知です」などの引数を使用してアプリを起動すると、そのcmd引数を含む別のフォームがポップアップ表示され、起動しません。別のプロセスとしてのアプリ。

あなたが私の主張を理解してくれることを願っています、もしあなたがそうでなければ、私はそれをもっと説明することができます。

4

2 に答える 2

2

あなたが望んでいるのは、Windows Serviceの仕事です。Windows サービスは、バックグラウンドで実行される、GUI インターフェースのないプログラムです。サービスは通常、コンピューターの起動時に開始され、コンピューターがシャットダウンするまで実行され続けます。

他のプログラムとサービス間の通信は、Windows Communication Foundation (または WCF) を使用して行うことができます。WCF では、1 つ以上のトランスポートを使用して 2 つのアプリケーション間の通信が可能です。

WCF を使用しない場合、データベースを介して "通信" する別の方法 (おそらく効率は劣りますが) です。サービスは追加された行のテーブルを監視でき、何かが発生する必要があるときはいつでもメイン プログラムでこれらの行を追加できます。選択は、最終的な目標が何であるかにかかっています。

幸運を!

于 2012-10-24T14:53:47.767 に答える
1

名前付きパイプ(System.IO.Pipes) または WCF の使用を検討してくださいSystem.ServiceModel.NetNamedPipeBinding。その他のオプションは、古い .NET Remoting または TCP/IP ソケットです。

「バックグラウンド アプリ」は Windows サービスにすることができますが、バックグラウンド サービスにはフォームがないため、GUI フォームをユーザーに表示することはできません。

Windows の「バックグラウンド」サービスを作成する簡単な方法については、OpenSource TopShelf プロジェクトを参照してください。

于 2012-10-24T14:57:11.227 に答える