用命名内核对象防止windows同时运行两个程序

原创 2008年10月09日 11:19:00
利用创建命名内核对象的方法可以防止同时运行程序,由于可能其他人写的程序用的命名会与自己的重复,
所以建议采用唯一的GUID。
以下代码根据《winows核心编程》整理。
  1. #include <windows.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.     HANDLE h = CreateMutexW(NULL, FALSE, L"{FA531CC1-0497-11d3-A180-00105A276C3E}");
  6.     if ( GetLastError() == ERROR_ALREADY_EXISTS )
  7.     {
  8.         printf("The application exists!/n");
  9.     }
  10.     else
  11.     {
  12.         printf("Run./n");
  13.     }
  14.     system("pause");
  15.     CloseHandle(h);   
  16.     return 0;
  17. }

白话windows内核对象共享之命名对象

引子:话说三国时期猛将张飞汉中之战时又于宕渠击败张郃
  • zxm342698145
  • zxm342698145
  • 2014年05月29日 12:45
  • 876

《Windows核心编程》之“内核对象”

内核对象(Kernel Object)是Winodws操作系统中最核心的一个概念,本文将对整个抽象的概念进行一些探索。 一、什么事内核对象 1,内核对象是对操作系统各项资源的抽象。     Windo...
  • Sagittarius_Warrior
  • Sagittarius_Warrior
  • 2016年08月19日 11:17
  • 624

让你的ipad同时运行两个或多个程序

IOS一直以来就是单程序运行的系统,对于手机来说差不多正好,但对IPAD这种大屏幕设备来说某些情况下单程序运行有些浪费了,比如在仅仅挂一些不需要怎么操作的网游时如果能再同时开个其他程序岂不是很完美?今...
  • chroming
  • chroming
  • 2015年03月31日 20:24
  • 3318

Windows互斥量内核对象

互斥量内核对象用来确保一个线程独占一个资源的访问。 互斥量对象包含了一个使用计数、线程ID以及一个递归计数。互斥量与关键段的行为完全相同,但是互斥量是内核对象,而关键段是用户模式下的同步对象,因此互...
  • luojian5900339
  • luojian5900339
  • 2015年05月28日 16:55
  • 474

C#建立了一个windows程序,如何防止多个程序实例运行?

1.可以在Main函数中如下操作:[STAThread]static void Main(){System.Diagnostics.Process[] ps = System.Diagnostics....
  • songkexin
  • songkexin
  • 2007年01月21日 05:50
  • 948

windows下如何防止启动两个一样的进程

方法用互斥量,Mutex来解决,因为Mutex有进程互斥的作用,而临界区则没有进程互斥功能。 方法如下: #include using namespace std; #include in...
  • c1520006273
  • c1520006273
  • 2016年01月19日 23:12
  • 564

Delphi防止同时出现多个应用程序实例

多实例指同时有同一个应用程序的多个副本在运行。同一个应用程序的多个副本可以相互独立地同时运行,是Win32操作系统提供的一个功能。但有时,我们可能希望用户启动应用程序后就不再启动它的别的副本。比如某种...
  • Tercel99
  • Tercel99
  • 2008年02月13日 09:24
  • 1524

windows 内核对象

以前老是分不清内核对象,用户对象。最近研究了一下这2个对象的使用,特别是内核对象的使用。 在系统中,对象分两类:内核对象和用户对象。  内核对象:访问令牌对象,文件对象,文件映射对象,I/0完成端口对...
  • xiaoyafang123
  • xiaoyafang123
  • 2016年08月16日 18:47
  • 546

【BASH】同时执行多个命令

 问题:需要执行三个程序,它们是独立的,不需要等待其他命令执行结束。 解决方案:在命令后放一个&,使得命令在后台运行。这样你可以用如下的方法同时执行这三个程序。$long &[1]4592$mediu...
  • magicpang
  • magicpang
  • 2009年04月24日 13:26
  • 10770

会引起程序卡死的两个原因

1.使用了为实例化的对象的方法2.传入的参数为空 
  • huhai463127310
  • huhai463127310
  • 2008年09月08日 22:01
  • 521
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用命名内核对象防止windows同时运行两个程序
举报原因:
原因补充:

(最多只允许输入30个字)