窗体运行前,检查是否互斥
来源:互联网 发布:mac黑屏音乐不播放 编辑:程序博客网 时间:2024/04/29 05:23
using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Threading;using System.Runtime.InteropServices;using System.Diagnostics;using System.Reflection;namespace WindowsFormsApplication1{ static class Program { /// 该函数设置由不同线程产生的窗口的显示状态 /// </summary> /// <param name="hWnd">窗口句柄</param> /// <param name="cmdShow">指定窗口如何显示。查看允许值列表,请查阅ShowWlndow函数的说明部分</param> /// <returns>如果函数原来可见,返回值为非零;如果函数原来被隐藏,返回值为零</returns> [DllImport("User32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow); /// <summary> /// 该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。 /// 系统给创建前台窗口的线程分配的权限稍高于其他线程。 /// </summary> /// <param name="hWnd">将被激活并被调入前台的窗口句柄</param> /// <returns>如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零</returns> [DllImport("User32.dll")] private static extern bool SetForegroundWindow(IntPtr hWnd); /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Process process = RuningInstance(); if (process == null) { Application.Run(new Form1()); } else { HandleRunningInstance(process);//将窗体置于所有窗体前端 } } private const int SW_SHOWNOMAL = 1; private static void HandleRunningInstance(Process instance) { ShowWindowAsync(instance.MainWindowHandle, SW_SHOWNOMAL);//显示 SetForegroundWindow(instance.MainWindowHandle);//当到最前端 } private static Process RuningInstance() { Process currentProcess = Process.GetCurrentProcess(); Process[] Processes = Process.GetProcessesByName(currentProcess.ProcessName); foreach (Process process in Processes) { if (process.Id != currentProcess.Id) { if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == currentProcess.MainModule.FileName) { return process; } } } return null; } }}
0 0
- 窗体运行前,检查是否互斥
- .Net 中用查找窗体标题的方法检查WinForm应用是否重复运行
- linux 检查定时检查程序是否运行
- 检查进程是否在运行
- 检查窗体中的textbox是否为空
- RAC linux运行环境安装前检查 服务器检查
- 检查是否本程序已经在运行
- Delphi检查进程是否在运行
- linux检查进程是否正在正常运行
- android 检查服务是否在运行
- 在service中检查Activity是否运行。
- android 检查某个服务是否正在运行
- 检查AIX下是否运行HACMP服务
- 检查程序是否以管理员身份运行
- 【C#】简单窗体程序,判断是否闰年,禁止窗体调整大小,关闭窗体前的判断
- mysql在插入记录前先检查记录是否存在:
- 程序集合并前检查类文件是否冲突
- Instruments-Automation:在点击操作前检查元素是否存在
- 对数据库中完整性概述的认识
- 面向对象 引用传递
- JAVA学习心得(二)-继承
- noip2015 day1 t2 message 伪·题解
- 求两个并联电阻的值
- 窗体运行前,检查是否互斥
- LintCode:整数转罗马数字
- odoo worker 异常Exception("bus.Bus unavailable")
- DOS/WINDOW/LINUX都用什么编写各种语言工具又是用什么开
- Coderforce #332 D. Spongebob and Squares
- iOS开发多线程-线程间的通信
- Java FP: Java中函数式编程的Map和Fold(Reduce)
- select * from table1 where id =‘1’ for update
- tomcat对线程池的扩展