检查命名事件
Check for Named Event
我有一个使用 ::CreateEvent
创建命名事件的过程。
在我的过程中,我想检查事件是否存在,但我不想创建事件以防它不存在。
我该怎么做?
我可以这样做,但是如果它不存在,则将创建事件:
HANDLE hEvent;
hEvent= ::CreateEvent(NULL, FALSE, FALSE, _T("MyEvent"));
if (::GetLastError() != ERROR_ALREADY_EXISTS)
{
.......
}
如果事件不存在,OpenEvent
不会创建该事件,因此您的代码几乎已经完成了您想要的操作。在检查错误代码之前,您需要检查事件句柄的NULL
:
HANDLE hEvent;
hEvent= ::OpenEvent(FALSE, FALSE, _T("MyEvent"));
if (!hEvent) // event does not already exist, or other problem
{
.......
}
CString csHandleName = "hEvent";
int nHandleinc(0);
HANDLE hHandleEvent = NULL;
while(!hHandleEvent)
{
csHandleName.Format("hEvent%d",nHandleinc);
hHandleEvent = CreateEvent(NULL,TRUE,false,csHandleName);
if (GetLastError() == ERROR_ALREADY_EXISTS )
{
CloseHandle( hHandleEvent );
hHandleEvent = NULL;
}
nHandleinc++;
}
相关文章:
- valgrind-hellgrind与泄漏检查的结果不同
- C++模板来检查友元函数的存在
- 检查输入是否不是整数或数字
- 试图让变量检查数组中的某些内容
- Android NDK传感器向事件队列报告奇怪的间隔
- 检查值是否在集合p1和p2中,但不在p3中
- C++概念:如何使用'concept'检查模板化结构的属性?
- 概念TS检查忽略私有访问修饰符
- 检查 std::shared_ptr<> 的当前底层类型是否为 T
- 在c++中检查长方体是否尽可能快地重叠(无迭代)
- 如何在C++中检查2D数组中负值的输入验证
- C++:正在检查LinkedList中的回文-递归方法-错误
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- 使用for循环检查数组中的重复项
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件
- 便携式事件检查器,带条件和无锁通知
- 事件仅在单击按钮时检查
- 检查命名事件
- OpenGL窗口应用程序检查事件更新的频率