windows事件跨session访问

来源:互联网 发布:剑灵龙女完美身材数据 编辑:程序博客网 时间:2024/06/06 18:56

事件名前面加“Global\”的方法,只能实现跨session检测事件是否存在,但执行打开事件OpenEvent等操作会返回Access Denied的错误。

解决方法是创建一个没有任何权限的事件(A NULL DACL):

PSECURITY_DESCRIPTOR psd = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH);InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION);SetSecurityDescriptorDacl(psd, TRUE, NULL, FALSE);SECURITY_ATTRIBUTES sa = {0};sa.nLength = sizeof(sa);sa.lpSecurityDescriptor = psd;sa.bInheritHandle = FALSE;HANDLE hEvent = CreateEvent(&sa, TRUE, FALSE, TEXT("Global\\Test"));LocalFree(psd);
原创粉丝点击