私は C# でアプリケーションを作成しただけですが、何か気に入らないことがあります。アプリケーションを一度だけ実行したい。ここで、アプリケーションが実行されている場合、アプリケーションを再度実行すると、別のアプリケーションが起動します。アプリケーションを一度だけ実行できるようにしたいのですが、アプリケーションを再度実行したい場合は、別のアプリケーションを作成するのではなく、実行中のアプリケーションを開始します。
ありがとう。
私は C# でアプリケーションを作成しただけですが、何か気に入らないことがあります。アプリケーションを一度だけ実行したい。ここで、アプリケーションが実行されている場合、アプリケーションを再度実行すると、別のアプリケーションが起動します。アプリケーションを一度だけ実行できるようにしたいのですが、アプリケーションを再度実行したい場合は、別のアプリケーションを作成するのではなく、実行中のアプリケーションを開始します。
ありがとう。
この質問を確認してください: Mutex を使用してアプリケーションの単一インスタンスを実行する
Mutex
アプリケーションが実行されているかどうかを確認するために探しています。次に、実行中のアプリケーションProcess
を見つけて、前面に出します。
私がこれを達成した方法は、を使用することMutex
です。アプリケーションの各インスタンスは、起動時にミューテックスをロックしようとします。成功すれば、実行に移されます。彼らが失敗した場合、彼らはしません。
実行できないアプリケーションも、実行中のインスタンスを復元してアクティブ化します。これは、WPF アプリケーションか WinForms アプリケーションかによって、異なる方法で実現されます。
ミューテックス アプローチの利点は、FindWindow を使用するよりも競合状態になりにくいことです。
アプリケーションの起動時に、アプリケーションのインスタンスがすでに実行されているプロセスを確認するか、それに応じて決定を下す必要があります。
可能な重複: