OpenEvent 失败的问题

来源:互联网 发布:java crm项目介绍 编辑:程序博客网 时间:2024/05/21 22:45

在同一个用户下,两个进程间通过事件通信,但是一个用户 CreateEvent 后,另外一个程序去 OpenEvent 事件失败。

在之前我遇到过该问题,经过检查,原来我一个进程是服务启动的进程,权限较高,而另外一个进程是普通用户进程权限较低,导致权限较低的进程去打开权限较高的进程创建的事件的时候,会报找不到事件的错误。

我们只能通过提升普通用户的权限,或者创建事件的时候降低 通过安全属性降低事件的权限,使他们拥有相同的权限即可。

提升权限的方法我没有查,可以自己百度一下,这里我采用的降低 服务进程的权限,然后使用低权限去创建事件。


   SECURITY_ATTRIBUTES sea;
SECURITY_DESCRIPTOR seds;
sea.nLength = sizeof(SECURITY_ATTRIBUTES);
sea.bInheritHandle = FALSE;
sea.lpSecurityDescriptor = &seds;
InitializeSecurityDescriptor(&seds, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&seds, TRUE, 0, FALSE);
HANDLE handle = CreateEvent(&sea, FALSE, FALSE, TEXT("FWCOPY"));

0 0