通过windows内核对象保证程序的单开
2013-03-06 15:45
232 查看
windows内核对象可以通过唯一命名空间的方式在进程之间共享,因此如果想要程序只能打开一个,可以通过内核对象的创建来判断
HANDLE handle = ::CreateMutex(NULL, FALSE, _T("Only One"));
if (GetLastError() == ERROR_ALREADY_EXISTS) {
//退出程序
}
此处创建互斥器时,内核会去判断同样命名的对象是否已经存在。注意,即使是同样的内核对象,句柄也可能不同
创建的句柄会在进程结束时回收,所以不用手动close
HANDLE handle = ::CreateMutex(NULL, FALSE, _T("Only One"));
if (GetLastError() == ERROR_ALREADY_EXISTS) {
//退出程序
}
此处创建互斥器时,内核会去判断同样命名的对象是否已经存在。注意,即使是同样的内核对象,句柄也可能不同
创建的句柄会在进程结束时回收,所以不用手动close
相关文章推荐
- Windows内核对象 - 通过异步程序调用(APC)实现的定时功能
- 通过内核对象在服务程序和桌面程序之间通信的小问题
- Windows程序进程中内核对象句柄表
- 通过内核对象在服务程序和桌面程序之间通信的小问题
- 通过内核对象在服务程序和桌面程序之间通信的小问题
- 通过内核对象在服务程序和桌面程序之间通信的小问题 good
- 用命名内核对象防止windows同时运行两个程序
- 通过内核对象在服务程序和桌面程序之间通信
- "windows线程池" 之 内核对象触发调用回调函数
- windows笔记-内核对象的使用计数
- 通过Windows Service启动外部程序
- Windows通过FindWindow控制其他程序的窗口
- windows程序设计 and windows核心编程(内核对象理论)
- [Windows] 通过任务管理器查看程序是否有内存泄漏
- Windows程序设计- 内核对象
- Windows内核学习笔记(四)-- 编写程序手动加载驱动程序
- Windows内核之内核对象
- Windows编程--线程和内核对象的同步-事件内核对象
- Windows编程--线程和内核对象的同步-信标(信号量)内核对象
- [Java实现]通过一个Java小程序(吃苹果)深入理解面向对象思想