我正在使用Visual Studio 2012,Windows窗体。当我点击桌面上的快捷方式时,我需要从系统托盘恢复应用程序。
我使用此代码可防止同一应用程序的双重使用,但不能从系统托盘打开应用程序。
[STAThread]
static void Main()
{
string mutex_id = "my application";
using (Mutex mutex = new Mutex(false, mutex_id))
{
if (!mutex.WaitOne(0, false))
{
Form1 fForm;
fForm = new Form1();
fForm.Show();
fForm.WindowState = FormWindowState.Normal;
fForm.ShowInTaskbar = true;
// MessageBox.Show("Instance Already Running!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
我在stackoverflow中提到了一些问题,没有运气。我需要在这段代码中修改什么?提前谢谢!
答案 0 :(得分:2)
您可以使用Mutex来完成此任务。 Here是CodePlex的一个固定解决方案,很容易整合到您的程序中。该解决方案确实提供了以下功能:
答案 1 :(得分:0)
检查this question并获取有关获取已在运行的应用实例的不同想法的答案。并查看此链接 - http://msdn.microsoft.com/en-us/magazine/cc163741.aspx(看看互斥)。