您的位置:首页 > 其它

使用内核对象使程序单实例运行:互斥信号量

2009-09-16 19:51 369 查看
内核对象是所有Windows进程都可以访问的,因此可以使用其中的互斥信号量和事件对象使程序单实例运行。。

比起原来的IO锁好了很多 = = DEMO如下:

【使用互斥信号量(互斥对象)实现】

Code:

//////////////////////////////////////////////////////////////////////////

// CopyRight(c) 2009, YOYO, All Rights Reserved.

// Author: LIN YiQian

// Created: 2009/09/16

// Describe: 使用内核对象控制程序只能单实例 演示

//////////////////////////////////////////////////////////////////////////

#include <Windows.h>

#include <iostream>

using namespace std;



void main(void)

{

HANDLE hInstance = CreateMutex(NULL, TRUE, "SingleInstance");



if (hInstance)

{

if (ERROR_ALREADY_EXISTS == GetLastError())

{

printf("程序已经启动!");



system("pause");

return;

}

}



while (true)

{

printf("程序运行阿 = = 运行阿 = = 运行阿。。/n");

Sleep(100);

}



CloseHandle(hInstance);



return;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: