Windows进程单实例运行】的更多相关文章

场景         Windows进程单实例运行,如果有进程没有退出,继续等待,直到进程完全退出,才会进入下一个实例 HANDLE pHandle = NULL; do  {  pHandle = ::CreateMutex(NULL, FALSE, "Global\\fengyuzaitu.blog.51cto.com");  if (ERROR_ALREADY_EXISTS == GetLastError() || ERROR_ACCESS_DENIED == GetLastEr…
简介 在我们编写程序的时候,经常会注意到的一个问题就是如何能够让程序只运行一个实例,确保不会让同一个程序多次运行,从而产生诸多相同进程,给我们的带来不便呢?那么常用的有以下四种方法,第一种方法是通过扫描进程列表比对进程名来检测,第二种方法是通过枚举程序窗口的方式,第三种方法是采用共享全局变量来实现,第四种方法是通过创建互斥体来实现. 那么在这些方法中,第一种和第二种方法是有缺陷的,扫描进程列表比对进程名容易对相同进程名字的不同程序产生误报,枚举窗口不适用于无窗口程序且与扫描进程列表的方法也有相同…
使Qt应用程序能够单实例运行的典型实现方法是使用共享内存实现.该方法实现简单,代码简洁. 但有一个致命缺陷:共享内存(QSharedMemory)实现的单程序运行,当运行环境是UNIX时,并且程序不幸崩溃,会导致共享内存无法释放,从而无法重新运行程序! 所以应该寻找其他的使Qt应用程序能够单实例运行的方案.于是找到LocalSocket和LocalServer通讯方案(据说Qt官方商业版的QSingleApplication的原理好像跟这个差不多). “要用到Qt的QLocalSocket,QL…
Winform 单实例运行 前言 前两天在博客园看到<如何防止程序多次运行>,文章写的很好,最后还留下一个问题给我们思考.关于Winform的防止多次运行,曾经也想研究过,但是后来工作上没有需要,于是就放弃了研究,这两天找资料,将其封装了一下,最后实现的效果为:Winform程序运行后,再次点击exe,会将Winform显示出去,若该窗体被其他窗体遮挡,则将其前置,若该窗体被最小化至托盘,将其显示并前置. 原理 使用命名事件,进程在此启动时,前一个进程会收到通知,并做出回应. using Sy…
C#实现单实例运行的方法,也有多种,比如利用 Process 查找进程的方式,利用 API findwindow 查找窗体的方式,还有就是 利用 Mutex 原子操作,上面几种方法中, 综合考虑利用 Mutex 的方式是较好的选择. [STAThread] static void Main() { bool isAppRunning = false; System.Threading.Mutex mutex = new System.Threading.Mutex( true, System.D…
利用WindowsFormsApplicationBase的IsSingleInstance来控制应用程序只能单实例运行. [DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)] public static extern int ShowWindow(IntPtr hwnd, int nCmdShow); [DllImport("User32.dll"…
/// <summary> /// 单实例运行程序 /// </summary> static void SingleInstanceRun() { bool isAppRunning = false; Mutex mutex = new Mutex(true, Process.GetCurrentProcess().ProcessName, out isAppRunning); if (!isAppRunning) { MessageBox.Show("[点单易]已经在…
关于怎么在winform里增加登录窗体或者如何让winform程序单实例运行网上都很多例子. 然而两者结合起来呢? //Program.cs static class Program { public static EventWaitHandle ProgramStarted; /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main…
原文:DevExpress Winform使用单例运行程序方法和非DevExpress使用Mutex实现程序单实例运行且运行则激活窗体的方法 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u012097590/article/details/92806194 网上关于C#单例运行程序的方法都是比较简单,有些甚至是无法实现功能的,不知道他们试没试过就发帖,因为自己之前都是用第三方控件Dev…
(引用了 Microsoft.VisualBasic.ApplicationServices)SingleInstanceApplicationWrapper.cs    using System.Windows.Forms;using Microsoft.VisualBasic.ApplicationServices; namespace Highflyer{    /// <summary>    /// 单实例应用程序封装类    /// </summary>    publ…
默认情况下我们可以打开一个应用程序多个实例,例如你双击一个exe多次.当然有些时候这么做会带来很多好处,但是有时我们又不希望这么做,要避免这个问题其实很简单,同WinForm中单实例运行一个应用是一样的,我们只需要在应用程序启动时创建一个"排他锁",修改App.xaml.cs如下: using System; using System.Windows; using System.Threading; namespace WPFLifeCycle { /// <summary>…
在普通的单实例中,第二次点击软件快捷方式的时候,往往简单提示"系统已经运行",而不是把第一次打开的软件主窗体显示出来,下面演示如果主窗体已经打开则把第一次打开的主窗体放置到最前面; 第一步 通过Spy++ 找到窗体句柄和标题: 在寻找窗体句柄时,一般会有下面几种情况: 1.知道类名称和窗体名称,这种是最简单的 2.知道类名称,知道主窗体的名称一部分,但主窗体名称会发生改变 3.不知道类名称,只知道窗体名称,这个时候判断条件只判断名称 4.只知道类名称,不知道窗体名称 这个时候窗体名称设…
static int proc_detect(const char *procname){ char filename[100] = {0}; sprintf(filename, "%s/%s.pid", LOG_DIR, procname); int fd = open(filename, O_RDWR | O_CREAT, (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)); if (fd < 0) { printf("open fil…
Windows进程  1 Windows进程    进程是一个容器,包括了一个应用程序实例的各种资源.Windows多任务的操作系统,因此能够同一时候运行多个进程.      2 Windows进程的一些特点    2.1 进程中包括了运行代码等资源.    2.2 进程都具有私有的地址空间.    2.3 每一个进程都有一个ID,标识进程.    2.4 每一个进程都有自己的安全属性    2.5 至少要包括一个能够运行的线程.    二 进程的环境 1 环境信息的获取    获取:    L…
我要做什么? 改 ASE 的监听地址.对于有强迫症的我来说,ASE 默认监听的是 127.0.0.1:10000-10002,这让我无法接受,所以我要将它改成域名 + 80 端口的方式: 放到容器中.ASE 只允许单实例运行,难道为了这玩意儿,我要在三个环境下开三个虚拟机? 连接 SQL Server,而不是 SQL Server Express LocalDB.DEV/QA 各有其 SQL Server Instance,当然要桥归桥,路归路. 要改变 ASE 的监听地址,首先要确认它有没有使…
一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc.d中启动,可以由inetd守护进程启动,也可以有作业规划进程crond启动,还可以由用户终端(通常是shell)执行.       Python有时需要保证只运行一个脚本实例,以避免数据的冲突. 二.Python守护进程 1.函数实现 #!/usr/bin/env python #coding: …
前言 这才第几天博客就跟不上了,看来一天一篇博客的目标还是有点大,写博客还是挺费时间的,写了不满意删,删完再写...直到自己没了耐心.今天先写个前言,实质性的内容明天再补吧.今天一天的收获还是挺多的,首先windows下单例程序的实现方式,这篇文章最主要介绍一个进程间通信的方式.当然其他方法也需要介绍.还有编程中的敏捷开发,这个内容现在是大体上了解了,还有待深挖,学会后应用到自身上试试.敏捷开发这部分内容等以后在专门出一篇自己的理解吧,网上这方面的内容还是挺多的.说实在的今天博客没有完成主要是因…
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <signal.h> #include <unistd.h> #include <sys/types.h> #include <time.h> #include <sys/stat.h> #include <fcntl.h> #include <syslog.…
HBase运行模式:单实例和分布式 HBase运行模式:单实例和分布式 1.单实例模式 1.1 单实例在HDFS下 2.分布式 2.1 伪分布式 3完全分布式 HBase有2种运行模式,单实例和分布式. 1.单实例模式 这个是默认的模式.单实例的描述可以看quickstart .在单实例模式下,hbase不使用HDFS,所有的HBase守护进程都在一个JVM下.Zookeeper绑定到所有已知的端口可以让客户端可以和HBase通信. 1.1 单实例在HDFS下 编辑hbase-site.xml,…
需求:Windows Server 2008 安装 10.2.0.5 单实例 原以为非常简单的一次任务,实际却遇到了问题,故记录一下. 1.安装10.2.0.1 2.安装10.2.0.4 3.安装10.2.0.5 1.安装10.2.0.1 先在MOS上确认Windows Server 2008 安装 10.2.0.5 是通过认证的. 我们知道10g版本是需要先安装基础版本的,所以先安装10.2.0.1基础版本.因为10.2.0.1没有认证,需要更改oraparam.ini文件骗过验证,不幸刚开始…
Windows进程间共享内存通信实例 抄抄补补整出来 采用内存映射文件实现WIN32进程间的通讯:Windows中的内存映射文件的机制为我们高效地操作文件提供了一种途径,它允许我们在WIN32进程中保留一段内存区域,把硬盘或页文件上的目标文件映射到这段虚拟内存中.注意:在程序实现中必须考虑各进程之间的同步问题. 在Windows操作系统下,任何一个进程不允许读取.写入或是修改另一个进程的数据(包括变量.对象和内存分配等),但是在某个进程内创建的文件映射对象的视图却能够为多个其他进程所映射,这些进…
Python 守护进程 守护进程简介 进程运行有时候需要脱离当前运行环境,尤其是Linux和Unix环境中需要脱离Terminal运行,这个时候就要用到守护进程.守护进程可以脱离当前环境要素来执行,这些要素包括:未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等 流程梳理 为了实现守护进程的功能,需要做以下几步:(1)fork一个新的进程,如果新的进程pid大于0,sys.exit(0),如果有异常,处理后退出即可:(2)脱离母体,切换到根目录下,设置os.umask(0)以…
开发了个程序,创建了一个进程,但是杀不掉了,在任务管理器里面 右键--结束进程,提示“拒绝访问”,或者“没有此任务实例运行” 怎么办? 直接给答案:PCHunter 具体方法: 1.打开PCHunter,在进程选项卡下面可以找到无法结束的进程,右键--强制结束,失败(这儿效果跟任务管理器下的结束时一样的) 2.这时候 右键--查看进程线程 ,然后将所有的线程给杀光光,再出来到进程选项卡下结束进程,OK 我用了整整一天半才实现,这一天半我杀不掉进程重启电脑十几次,哎 当然进程杀不死这个代表我的代码…
--EBS单实例上所有正在运行的并发请求以及请求目前的状态---一个实例上运行的所有并发请求的总结和他们目前的状态以及等待状态    select w.seconds_in_wait "Secondswait",         w.event "waitEvent",         w.p1 || chr(10) || w.p2 || chr(10) || w.p3 "Session Wait",         p.spid || chr(…
关键字:Windows下MySQL多实例运行 阅读前注意事项: 1.有的版本的data目录不直接放在mysql安装目录下,有可能在:C:\ProgramData\MySQL\MySQL Server 5.1\data(不管路径在哪里 指定正确的路径即可) 2.操作步骤:复制MySQL安装目录-->修改my.ini中的端口2处.安装目录和数据目录---->命令安装MySQL windows服务--->修改注册表---->启动新实例的window服务---->正常使用 正文篇:…
    前阵子写静态lib导出单实例多线程安全API时,出现了CRITICAL_SECTION初始化太晚的问题,之后查看了错误的资料,引导向了错误的理解,以至于今天凌晨看到另一份代码,也不多想的以为singletone double check会出bug,本文做下记录备忘.    相关知识点:Singleton Double Check.多线程下的局部Static对象.静态Lib中的全局对象.无锁编程. 一.singleton double check SingleInstance* volat…
最近有同事问道在应用程序启动之后,再次双击应用程序,如何保证不再启动新的应用程序,而是弹出之前已经启动的进程,本质上这就是创建一个单实例的WPF应用程序.在VS的工程树中有一个App.xaml和App.xaml.cs(这两个文件都是VS自动生成的),在App.xaml.cs中定义了App类,该类继承自System.Windows.Application,从类的命名上也很容易看出这些类是跟应用程序的管理相关的,在讲创建单实例应用程序之前,我们先了解一下Application这个类. 在上一篇WPF…
例如:Microsoft Word,不管打开多少个文档(也不管它们是如何打开的),一次只能加载 winword.exe 一个实例. 这便是单实例应用程序. 对于这种单实例应用程序,WPF 本身并未提供解决方法,但是可以使用几种变通的方法.基本的技术是当触发 Application.StartUp 事件时,检查另一个应用程序是否正在运行.最简单的方法是使用一个全局的 mutex 对象(mutex对象是操作系统提供的一个用于进程之间通信的同步对象).这种方法很简单但是功能有限——最重要的是,应用程序…
第1章 MySQL数据库安装 在当今的大中型互联网企业里,MySQL数据库服务几乎都是运行在Linux系列操作系统上,当然,你在可以运行在Windows/Unix等商业操作系统上,大中型互联网企业使用开源领域的产品MySQL数据库的目的是,软件代码的开放性和无版权免费应用节约成本.推荐中小型企业采用LAMP/LNMP网站架构,后面的数据库知识在Linux(CentOS6.5)平台为例讲述如何安装及使用MySQL软件的 不同场景不同版本的MySQL的安装有多种方法 1.1 yum/rpm方式安装M…
Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在Windows OS上配置并启动Apache Kafka,这篇指南将会指导你安装Java和Apache Zookeeper. Apache Kafka是一个快速可扩展的消息队列,能够应对繁重的读写负载,即IO相关工作.更多信息请参见http://kafka.apache.org.由于 Zookeep…