-1

私は C# でアプリケーションを作成しただけですが、何か気に入らないことがあります。アプリケーションを一度だけ実行したい。ここで、アプリケーションが実行されている場合、アプリケーションを再度実行すると、別のアプリケーションが起動します。アプリケーションを一度だけ実行できるようにしたいのですが、アプリケーションを再度実行したい場合は、別のアプリケーションを作成するのではなく、実行中のアプリケーションを開始します。

ありがとう。

4

4 に答える 4

5

この質問を確認してください: Mutex を使用してアプリケーションの単一インスタンスを実行する

Mutexアプリケーションが実行されているかどうかを確認するために探しています。次に、実行中のアプリケーションProcessを見つけて、前面に出します。

于 2012-07-18T13:06:44.010 に答える
1

私がこれを達成した方法は、を使用することMutexです。アプリケーションの各インスタンスは、起動時にミューテックスをロックしようとします。成功すれば、実行に移されます。彼らが失敗した場合、彼らはしません。

実行できないアプリケーションも、実行中のインスタンスを復元してアクティブ化します。これは、WPF アプリケーションか WinForms アプリケーションかによって、異なる方法で実現されます。

ミューテックス アプローチの利点は、FindWindow を使用するよりも競合状態になりにくいことです。

于 2012-07-18T13:07:08.653 に答える
0

アプリケーションの起動時に、アプリケーションのインスタンスがすでに実行されているプロセスを確認するか、それに応じて決定を下す必要があります。

可能な重複:

C# .net を使用して Windows でプロセスが既に実行されていることを検出する

c#.netですでに実行中のexeを確認するには?

于 2012-07-18T13:05:54.713 に答える
0

あなたが参照している概念は「単一インスタンスアプリケーション」です。これは通常、名前付きの待機可能なオブジェクトによって実現されます。この記事またはこの記事をご覧ください。

于 2012-07-18T13:06:37.240 に答える