当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  如何让应用程序只有一个实例在运行?

 如何让应用程序只有一个实例在运行?

点击次数:34 次 发布日期:2008-11-26 11:51:06 作者:源代码网
源代码网推荐      MyForm.cs
源代码网推荐  
源代码网推荐  using System;
源代码网推荐  using System.Runtime.InteropServices;
源代码网推荐  using System.Windows.Forms;
源代码网推荐  using System.Diagnostics;
源代码网推荐  using System.Reflection;
源代码网推荐  
源代码网推荐  public class OneInstnace
源代码网推荐  {
源代码网推荐   [STAThread]
源代码网推荐   public static void Main()
源代码网推荐   {
源代码网推荐   //得到正在运行的例程
源代码网推荐   Process instance = RunningInstance();
源代码网推荐   if (instance == null)
源代码网推荐   {
源代码网推荐   //如果没有其它例程,就新建一个窗体
源代码网推荐   Application.Run (new Form());
源代码网推荐   }
源代码网推荐   else
源代码网推荐   {
源代码网推荐   //处理发现的例程
源代码网推荐   HandleRunningInstance(instance);
源代码网推荐   }
源代码网推荐   }
源代码网推荐   public static Process RunningInstance()
源代码网推荐   {
源代码网推荐   Process current = Process.GetCurrentProcess();
源代码网推荐   Process[] processes = Process.GetProcessesByName (current.ProcessName);
源代码网推荐  
源代码网推荐   //遍历正在有相同名字运行的例程
源代码网推荐   foreach (Process process in processes)
源代码网推荐   {
源代码网推荐   //忽略现有的例程
源代码网推荐   if (process.Id != current.Id)
源代码网推荐   {
源代码网推荐   //确保例程从EXE文件运行
源代码网推荐   if (Assembly.GetExecutingAssembly().Location.Replace("/", "\") ==
源代码网推荐   current.MainModule.FileName)
源代码网推荐   {
源代码网推荐   //返回另一个例程实例
源代码网推荐   return process;
源代码网推荐   }
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   //没有其它的例程,返回Null
源代码网推荐   return null;
源代码网推荐   }
源代码网推荐  
源代码网推荐   public static void HandleRunningInstance(Process instance)
源代码网推荐   {
源代码网推荐   //确保窗口没有被最小化或最大化
源代码网推荐   ShowWindowAsync (instance.MainWindowHandle , WS_SHOWNORMAL);
源代码网推荐  
源代码网推荐   //设置真实例程为foreground window
源代码网推荐   SetForegroundWindow (instance.MainWindowHandle);
源代码网推荐   }
源代码网推荐  
源代码网推荐   [DllImport("User32.dll")]
源代码网推荐  
源代码网推荐   private static extern bool ShowWindowAsync(
源代码网推荐   IntPtr hWnd, int cmdShow);
源代码网推荐   [DllImport("User32.dll")] private static extern bool
源代码网推荐   SetForegroundWindow(IntPtr hWnd);
源代码网推荐   private const int WS_SHOWNORMAL = 1;
源代码网推荐  }
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华