私はその時点で1つのインスタンスしか実行できないようにするWindows Formsアプリケーションを持っています。私はMutexを使ってSingletonを実装しました。アプリケーションは、コマンドラインから起動可能でなければなりません(パラメータあり/なし)。アプリケーションはスクリプトによって開始および終了されます。ユーザーはそれに対して何も行動できません。シングルインスタンスのWindowsフォームアプリケーションとその参照を取得する方法?
したがって、アプリケーションの目的は、単純な "インジケータ"アプリケーションであり、エンドユーザーのためのいくつかの視覚的およびグラフィカルな情報を表示するだけです。エンドユーザーは何もすることはできません、それを見てください。それは、視覚的でグラフィカルな外観が比較的容易に実行できるため(これは最上位、ボーダレスなど)、Windowsフォームアプリケーションです。
簡単に言えば、 exitコマンドラインパラメータを使用して同じアプリケーションを実行しようとすると、現在実行中のアプリケーションを終了するにはどうすればよいですか?
bool quit = (args.Length > 0 && args[0] == "quit") ? true : false;
using (Mutex mutex = new Mutex(false, sExeName))
{
if (!mutex.WaitOne(0, true))
{
if (quit)
{
// This is the tricky part?
// How can I get reference to "previous" launced
// Windows Forms application and call it's Exit() method.
}
}
else
{
if (!quit)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Microsoftは別のリンクを破壊しました。彼らはこれまでに学ぶだろうか? –
https://blogs.msdn.microsoft.com/tyler_whitney/2005/11/28/single-instance-applications-and-c/ –
これは 'Microsoft.VisualBasic'なしで行うことができますか? –