WinForm一次只打开一个程序】的更多相关文章

WinForm如果我们希望一次只打开一个程序,那么我们在程序每次运行的时候都需要检测线程是否存在该程序,如果存在就呼出之前的窗体,C#代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Windows.…
问题描述: 我们开发过程中可能会经常遇到,只启动一个程序实例.即一个程序启动之后,如果再次执行该程序,将会恢复之前打开的程序,而不是打开一个新的程序. 实现原理:利用FindWindow/FindWindowEx查找指定窗口的句柄,如果找到,则当前程序已经执行,只需重新显示到最前面即可:如果没有找到,表示程序没有运行, 继续执行程序初始化. 程序示例: BOOL SingletonInstance() { HWND hPreWnd; if ( hPreWnd = ::FindWindow(NUL…
要实现VC++或者MFC只运行一个程序实例,一般采用互斥量来实现,即首先用互斥量封装一个只运行一个程序实例的函数接口: HANDLE hMutex = NULL; void MainDlg::RunSingleInstance() { hMutex = CreateMutex(NULL,FALSE,TEXT("Single Instance Demo")); if (hMutex) { if(ERROR_ALREADY_EXISTS == GetLastError()) { // 已经…
方法有很多,以下只是提供一种用的多的 一. 单文档程序 在程序App类的InitInstance中添加如下代码 BOOL CDDZApp::InitInstance() { /*只运行一个实例*/ //创建命名信标对象. HANDLE hSem = CreateSemaphore(NULL, 1, 1, "DDZ"); if (hSem) //信标对象创建成功. { //信标对象已经存在,则程序已有一个实例在运行. if (ERROR_ALREADY_EXISTS == GetLast…
本文出自:https://www.cnblogs.com/2186009311CFF/p/10024949.html 在App.xaml.cs填充一下内容,即可实现只允许一个运行,且不解锁屏幕的情况下,重启运行. public partial class App : Application { System.Threading.Mutex mutex; public App() { this.Startup += new StartupEventHandler(App_Startup); thi…
内容来自:https://codereview.stackexchange.com/questions/20871/single-instance-wpf-application 第一步:添加System.RunTime.Remoting引用 第二步:新建一个类class1.cs(按自己想法命名) using System; using System.Collections; using System.Collections.Generic; using System.ComponentMode…
1 class BasePage(): 2 """selenium基类""" 3 4 def __init__(self, driver=None): 5 self.log = Log().logger 6 self.report = cm.allure_json 7 self.broswer = CONF.web_broswer or 'firefox' 8 self.base_url = CONF.web_url 9 self.timeout…
一.通过系统事件 1.实现如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; using System.Runtime.InteropServices; namespace Example { public class SinglonProgram { #region…
using System; using System.Collections.Generic; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Diagnostics; using System.Reflection; namespace AppLed {     static class Program     {         //防止程序运行多个实例的方法有多种,如:通过使用互斥…
下面是JS代码: var curr = null; //curr为当前tab的标题,在else中赋值 function addtab(href, tabtitle) { if (curr) { $('#contab').tabs('update', { tab : curr, options : { title : tabtitle, href : href, selected : true } }); $('#contab').tabs('select', tabtitle); } else…
if(downListControl == null || downListControl.IsVisible == false) { downListControl = new DownloadListControl(); downListControl.Show(); } else { MessageBox.Show("对不起,下载窗口也打开!不要重复打开"); downListControl.Activate(); downListControl.WindowState = Wi…
HANDLE hMutex=CreateMutex(NULL,TRUE,"HDZBUkeyDoctorTool"); if(hMutex) { if(ERROR_ALREADY_EXISTS==GetLastError()) { MessageBox(NULL, "程序已在运行中!", "盾医生:", NULL); return FALSE; } }…
function addTabA(title){ if ($('#tt').tabs('exists', title)){ $('#tt').tabs('select', title); } else { $('#tt').tabs('add',{ title:title, content:'Tab Body ' , iconCls:'icon-save', closable:true }); } } jQuery EasyUI的其他方法调用方式相似 例如:layout 默认收起 $('#lay…
from selenium.webdriver import Remote from selenium.webdriver.chrome import options from selenium.common.exceptions import InvalidArgumentException class ReuseChrome(Remote): def __init__(self, command_executor, session_id): self.r_session_id = sessi…
我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开. 那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭.也就是是否存在另一个程序在运行. 下面是一个简单方法 // 确保不存在程序的其他实例 singleInstanceWatcher = new Semaphore( 0, // Initial count. 1, // Maximum count. Assembly.GetExecutingAssembly().GetName().Name, out…
转载:http://blog.sina.com.cn/s/blog_4b44e1c00100bh69.html 进程的互斥运行:CreateMutex函数实现只运行一个程序实例 正常情况下,一个进程的运行一般是不会影响到其他正在运行的进程的.但是对于某些有特殊要求的如以独占方式使用串行口等硬件设备的程序就要求在其进程运行期间不允许其他试图使用此端口设备的程序运行的,而且此类程序通常也不允许运行同一个程序的多个实例.这就引出了进程互斥的问题. 实现进程互斥的核心思想比较简单:进程在启动时首先检查当…
title author date CreateTime categories WPF 只允许打开一个实例 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23:3 +0800 WPF 我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开. 那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭.也就是是否存在另一个程序在运行. 下面是一个简单方法 // 确保不存在程序的其他实例 singleInstanceWatc…
原文:wpf只运行一个实例 在winform下,只运行一个实例只需这样就可以: 1. 首先要添加如下的namespace: using System.Threading; 2. 修改系统Main函数,大致如下: bool bCreatedNew; //Create a new mutex using specific mutex name Mutex m =new Mutex( false, "myUniqueName", out bCreatedNew ); if( bCreated…
本文是自己在实践中,发现的问题. 有时候想让界面更加的人性化,就要实现很多的效果,比如只展开一个group,在点击下个group的同时,关闭之前的group 在一个ExpandableListView,如何实现只展开一个group,方法如下: [java]  view plain copy   mListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Override public void onGroupExpand(i…
我们在WinForm开发中,很多情况下是需要只允许让用户运行一个实例,那么代码其实很简单.只需要修改Program.cs文件,代码如下 static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main() { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderin…
C#控制只运行开启一个程序 在这个例子中不需要调用ReleaseMutex,mutex会在程序结束时自动释放.为了防止mutex过早释放,在程序的最后调用下GC.KeepAlive (mutex). 在Programm.cs里面的main函数 加入:Using  System.Diagnostics; Using  System.Threading; static void Main()        {            bool instantiated;            Mute…
许多朋友,学习C#时,制作WinForm小程序总会有一个问题,如果我们在父窗体设置的是点击一个按钮,打开一个子窗体,连续点击总会连续出现一样窗体,可是我们有时只想打开一次窗体,怎么办? 呵呵,我来方法告诉大家,希望对大家有所帮助,当然,我理解初学者的心情,能看懂,保证代码可用,希望对你们有帮助.   //设置只打开一次公用方法 public static int cxypx(Form frmMdiFather, string strMdiChild) { ; ; i < frmMdiFather…
保证只运行一个应用程序的C#实现: using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;using System.Diagnostics;using System.Reflection;using System.Runtime.InteropServices; namespace JackLib.App{    static class Program {      …
. 启动画面类: public class SplashForm : System.Windows.Forms.Form { private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label lbl_version; /// <summary> /// 必需的设计器变量. /// </summa…
方法一: 有时候在开发应用程序时,希望控制程序运行唯一的实例.例如,最常用的mp3播放软 件Winamp,由于它需要独占计算机中的音频设备,因此该程序只允许自身运行唯一的一个例程.在Visual C++的开发实践中,对于16位的Windows系统,应用程序的hPrevInstance句柄保存了应用程序上一个运行的实例,可以用该值来检查是否 有实例运行:然而在32位Windows系统下,这个值总是NULL,所以无法利用该值来实现程序运行唯一实例.本实例给出了解决这个问题的简单办法,只 要将程序中稍…
我们的程序有时候只允许运行一次,并且最好的情况是,如果程序第二次运行,就激活原来的程序.网上有很多的方法实现程序只运行一次,但对于激活原来的窗口却都不怎么好.关键就在于激活原来的程序,一般的做法是在工程开始时,打开互斥量对象,如果打不开表示程序还没有运行,创建一个互斥量对象:如果打得开表示程序已经运行了,查找程序中一个特定的窗口,一般是主窗口,然后发送一个自定义消息,主窗口在这个消息处理中激活自己.我原来就是这么做的,却发现有很多问题.主窗口在消息处理函数中激活不了自己,众所周知激活一个窗口最有…
关于Core发布到IIS的热发布问题,或者覆盖dll文件的时候会报错"文件已在另一个程序中打开",也就是无法覆盖程序的问题,经过百度和分析总结以下几种方案: 一.使用app_offline.htm文件,这个方案网上最多: 1.具体步骤: 1)在发布路径新建一个文件夹"UpdateFiles" 2)文件夹"UpdateFiles"里面放一个app_offline.htm文件,这个文件是网站处于离线状态的时候的返回给客户端的页面内容 3)文件夹&qu…
  35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和: (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n!): (4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现 接口的类. p…
//http://blog.chinaunix.net/uid-24549279-id-71355.html /* ============================================================================ Name : test.c Author : blank Version : Copyright : Your copyright notice Description : 程序4-5 打开一个文件,然后unlink ======…
在开发android应用的时候,在一些情况下要有前置条件,比如这边所说的要启动时要确保别的应用程序服务已经打开  或者在操作中启动别的应用等. 先来一段google上的代码: 1. 已知包名和类名的情况下: Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); //前面两个设置是为了调用该应用的主页 也就如C#或JAVA 常说的 MAIN函数入口 Componen…