我有一個程序只允許運行一個自己的實例。我用這個代碼如何從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);
}
}
}
}
我想要做的就是處理命令行參數來調用一些啓動和停止對我的MainForm的WinForm的方法。我可以很好的開始。但是從新的命令行窗口運行應用程序並嘗試調用方法不起作用。我可以讓窗戶來到前面。有沒有一種方法可以從手柄中獲取我的表單?
或者更好的方法來做到這一點?
Dang創建單實例非常簡單。我沒有意識到與之交談會是如此的痛苦。雖然有意義。謝謝大家。我剛剛結束了調用exit的過程,我們已經有了代碼來處理表單出口的清理。 – nportelli 2009-05-22 13:40:28