使windows应用程序单实例运行(C#)
来源:互联网 发布:python 稀疏矩阵 编辑:程序博客网 时间:2024/05/22 12:56
using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.Reflection;
using System.Runtime.InteropServices;
namespace RPAMessenger
...{
public class Program
...{
private const int WS_SHOWNORMAL = 1;
[DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[STAThread]
static void Main()
...{
//Mutex mutex = new Mutex(false, "RPAMessenger");
//bool Running = !mutex.WaitOne(0, false);
//if (!Running)
//{
// Application.EnableVisualStyles();
// Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new FrmRPAMsgLgn());
//}
//else
//{ }
Process instance = GetRunningInstance();
if (instance == null)
...{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmRPAMsgLgn());
}
else
...{
HandleRunningInstance(instance);
}
}
public static Process GetRunningInstance()
...{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
foreach (Process process in processes)
...{
if (process.Id != current.Id)
if (Assembly.GetExecutingAssembly().Location.Replace("/", "/") == current.MainModule.FileName)
return process;
}
return null;
}
public static void HandleRunningInstance(Process instance)
...{
ShowWindowAsync(instance.MainWindowHandle, WS_SHOWNORMAL);
SetForegroundWindow(instance.MainWindowHandle);
}
}
}
using System.Diagnostics;
using System.Windows.Forms;
using System.Reflection;
using System.Runtime.InteropServices;
namespace RPAMessenger
...{
public class Program
...{
private const int WS_SHOWNORMAL = 1;
[DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[STAThread]
static void Main()
...{
//Mutex mutex = new Mutex(false, "RPAMessenger");
//bool Running = !mutex.WaitOne(0, false);
//if (!Running)
//{
// Application.EnableVisualStyles();
// Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new FrmRPAMsgLgn());
//}
//else
//{ }
Process instance = GetRunningInstance();
if (instance == null)
...{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmRPAMsgLgn());
}
else
...{
HandleRunningInstance(instance);
}
}
public static Process GetRunningInstance()
...{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
foreach (Process process in processes)
...{
if (process.Id != current.Id)
if (Assembly.GetExecutingAssembly().Location.Replace("/", "/") == current.MainModule.FileName)
return process;
}
return null;
}
public static void HandleRunningInstance(Process instance)
...{
ShowWindowAsync(instance.MainWindowHandle, WS_SHOWNORMAL);
SetForegroundWindow(instance.MainWindowHandle);
}
}
}
- 使windows应用程序单实例运行(C#)
- C# windows应用程序单实例运行实例
- windows应用程序单实例
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT应用程序单实例运行
- 如何让应用程序单实例运行
- WinCE下应用程序的单实例运行
- WinCE下应用程序的单实例运行
- 单实例运行Java桌面应用程序
- windows应用程序单实例之命名管道
- 应用程序每次只能运行一个实例(C#)转
- 应用程序每次只能运行一个实例(C#)
- 应用程序每次只能运行一个实例(C#)
- 保证应用程序只运行一个实例[c#]
- 使程序单实例运行
- 利用C#线程机制实现应用程序的单实例运行
- 完成端口编程模型介绍
- 总结AJAX相关JS代码片段和浏览器模型
- JS 文本框中只允许输入数字
- _stdcall与_cdecl的区别
- DreamWorks Animation "Shrek the Third": Linux Feeds an Ogre
- 使windows应用程序单实例运行(C#)
- 如何迅速成为Java高手 (转)
- 如何用C遍历一个文件夹中的所有文件
- 一个会下载至少3个Viking等恶意程序的网站
- 几个方便的日期计算函数
- 测试版本大全 (转)
- C# 3.0新特性初步研究 Part5:匿名类型_C#教程
- Windows Form 中的鼠标事件
- ASP中使用C#编写的模块(程序集)