私は自分自身の1つのインスタンスだけを実行できるプログラムを持っています。私は私がやりたいことはいくつかの開始を呼び出すと、私のMainFormのWinフォーム上のメソッドを停止するには、コマンドライン引数を処理しているMainWindowHandleからフォームを取得するには?
bool createdNew = true;
using(Mutex mutex = new Mutex(true, "MobilePOSServer", out createdNew))
{
if(createdNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
else
{
Process current = Process.GetCurrentProcess();
foreach(Process proc in Process.GetProcessesByName(current.ProcessName))
{
if(proc.Id != current.Id)
{
SetForegroundWindow(proc.MainWindowHandle);
}
}
}
}
このコードを使用します。私はちょうど良いスタートを得ることができます。しかし、新しいコマンドラインウィンドウからアプリケーションを実行し、メソッドを呼び出そうとしていません。窓が前面に来るようにすることができます。ハンドルからフォームを取得できる方法はありますか?
これを行うより良い方法はありますか?
ダングシングルインスタンスの作成は簡単でした。私はそれに話をすることはそんなに苦痛であるとは思わなかった。しかし、意味があります。皆さんありがとう。私はちょうどプロセスの終了を呼び出し終わった、私たちはすでにフォーム出口でのクリーンアップに対処するコードを持っていた。 – nportelli