c# 获取当前实例的问题
我使用互斥体的方法来实现了只运行一个程序:
- C# code
static void Main() { bool runone; System.Threading.Mutex run = new System.Threading.Mutex(true, "xinbiao_a_test", out runone); if (runone) { run.ReleaseMutex(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } else { MessageBox.Show("已经运行了一个实例了。"); //如何获取这个已经运行的实例呢???? } }
请问在MessageBox.Show("已经运行了一个实例了。") 这个地方,如果获取当前已经运行的窗体,并进一步操作。我尝试用了
Application.OpenForms 但是获取不到当前已经运行的窗体,但是我需要在这个已经运行的窗体上进行一些操作,希望各位大侠帮忙解决下,最好是有详细的代码
[解决办法]
- C# code
System.Diagnostics.Process[] allProcess = System.Diagnostics.Process.GetProcesses(); foreach (System.Diagnostics.Process thisprocess in allProcess) { string processName = thisprocess.ProcessName; if (processName.ToLower() == "进程名字") { try { //LZ在这操作你要操作的东西 } catch (Exception e) { MessageBox.Show(e.Message); return; } } }