C# 判断某程序是否运行,已运行则激活
2013-05-22 11:18
399 查看
[DllImport("user32.dll")]
private static extern bool
SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")]
private static extern bool IsIconic(IntPtr hWnd);
// 消息函数
[DllImport("user32.dll", EntryPoint = "PostMessageA")]
public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string strclassName, string strWindowName);
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MAXIMIZE = 0xF030;
private string exeName = "SaoMiaoApp";
public void SetForm()
{
Process[] processes = Process.GetProcessesByName(exeName);
if (processes.Length > 0)
{
IntPtr hWnd = processes[0].MainWindowHandle;
if (IsIconic(hWnd))
ShowWindowAsync(hWnd, 9);// 9就是SW_RESTORE标志,表示还原窗体
//SendMessage(hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
SetForegroundWindow(hWnd);
}
else
{
Process.Start(exeName + ".exe");
}
}
private static extern bool
SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")]
private static extern bool IsIconic(IntPtr hWnd);
// 消息函数
[DllImport("user32.dll", EntryPoint = "PostMessageA")]
public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string strclassName, string strWindowName);
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MAXIMIZE = 0xF030;
private string exeName = "SaoMiaoApp";
public void SetForm()
{
Process[] processes = Process.GetProcessesByName(exeName);
if (processes.Length > 0)
{
IntPtr hWnd = processes[0].MainWindowHandle;
if (IsIconic(hWnd))
ShowWindowAsync(hWnd, 9);// 9就是SW_RESTORE标志,表示还原窗体
//SendMessage(hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
SetForegroundWindow(hWnd);
}
else
{
Process.Start(exeName + ".exe");
}
}
相关文章推荐
- 判断C#程序是否运行
- 判断是否有全屏程序正在运行(C#)
- C# 判断某程序是否运行
- C# 判断程序是否已经在运行
- C# WINFORM判断程序是否运行,且只能运行一个实例
- 判断是否有全屏程序正在运行(C#)
- C# WinForm判断程序是否以管理员身份运行,UAC权限的提权与降权
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)
- 判断是否有全屏程序正在运行(C#)
- C#判断程序是否是管理员权限运行的方法代码示例
- C#判断程序是否运行
- C#判断是否有全屏程序正在运行
- 判断是否有全屏程序正在运行(C#)
- C#:判断当前程序是否通过管理员运行
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C#判断程序是否在运行
- C#判断程序是否在运行
- C# WinForm判断程序是否以管理员身份运行
- C#判断程序是否以管理员身份运行,否则以管理员身份重新打开 --转载