2016-04-27 16 views
-2

私はこれを数時間以上苦労しており、解決策は考えられません。新規作成/アプリケーションのインスタンスを再利用する(Windows、.NET、WPF)

私はこのようにして開始することができるアプリケーションを有する:同じGUIDを持つアプリケーションのインスタンスが存在しない場合、新しいインスタンスは、ID = {GUID}で開始されるべきである

TestApplication.exe ID={GUID} filename={filename} 

および指定されたファイルがその中にロードされます。

同じGUIDを持つアプリケーションのインスタンスがある場合は、作業中のファイルを閉じたいのか、確認するのかを尋ねる必要があります。指定された新しいファイルを実行中に開く必要がありますインスタンス。

これを実装する方法はありますか?

答えて

0

Mutexを使用してください。この質問の最初の答えをご覧ください: What is the correct way to create a single-instance application?

+0

これは、指定されたGUIDを持つプロセスがすでに存在する場合、プロセス間の通信方法については扱いません。 – IInspectable

+1

@IInspectable次に、私が言及したポストで2番目の答えを試し、argsを渡す方法を教えます。尋ねる前に検索を試みてください。 – hillin

+0

この質問が以前に尋ねられ、すでに回答があると思われる場合は、回答を重複してリンクするのではなく、重複して閉じるよう投票する必要があります。 – IInspectable

0

これを実装する方法はありますか?

はい。質問に答えました。あなたは私たちに私たちのアイデアを示すように求めることはありません。

実際に試してみましょう。

  • 一方向はウィンドウタイトルによるものですが、GUIDが重大に最適ではありません。

  • このように、NAMED MUTEXESを読んでください。そのプログラムを使用して、すでに実行中のプログラムを識別することができます。

  • また、信号名付きパイプを実際に送信する必要があります。 GUIDに名前付きパイプを登録できます。失敗:すでに存在します。新しいアプリケーションが実際に古い信号を通知したり、シャットダウンコマンドを送信したりすることができます。

関連する問題