Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检查命名事件_C++_Windows_Event Handling - Fatal编程技术网

C++ 检查命名事件

C++ 检查命名事件,c++,windows,event-handling,C++,Windows,Event Handling,我有一个使用::CreateEvent创建命名事件的进程 在我的过程中,我想检查事件是否存在,但如果它不存在,我不想创建事件 我怎么做 我可以这样做,但如果事件不存在,则会创建该事件: HANDLE hEvent; hEvent= ::CreateEvent(NULL, FALSE, FALSE, _T("MyEvent")); if (::GetLastError() != ERROR_ALREADY_EXISTS) { ....... } OpenEvent如果事件不存在,则不会创建

我有一个使用
::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
{
   .......
}

OpenEvent
如果事件不存在,则不会创建该事件,因此您的代码几乎已经实现了您想要的功能。在检查错误代码之前,需要检查事件句柄的
NULL

HANDLE hEvent;
hEvent= ::OpenEvent(FALSE, FALSE, _T("MyEvent"));
if (!hEvent) // event does not already exist, or other problem
{
   .......
}

对不起,我弄错了。必须使用“CreateEvent”而不是“OpenEvent”。“OpenEvent”对我根本不起作用,它在任何情况下都返回NULL,即使在事件存在的情况下也是如此。。我编辑了我的问题。请检查错误代码。如果事件存在,但
OpenEvent
返回
NULL
则存在另一个问题。这可能是权限错误--如果事件是由另一个进程创建的,则您可能没有访问该事件的权限,特别是如果另一个进程是服务或其他系统进程,或由其他用户运行。抱歉,我搞错了。必须使用“CreateEvent”而不是“OpenEvent”。“OpenEvent”对我根本不起作用,它在任何情况下都返回NULL,即使在事件存在的情况下也是如此。。我编辑了我的问题。请检查错误代码。如果事件存在,但
OpenEvent
返回
NULL
则存在另一个问题。这可能是权限错误——如果事件是由另一个进程创建的,则您可能没有访问该事件的权限,尤其是当另一个进程是服务或其他系统进程,或由其他用户运行时。