请问 CreateEvent 后在另一个用户用 OpenEvent 为什么会打开失败?

fromgx 2010-02-03 05:40:44

先是在用户A 的 AA 进程中创建事件:
CreateEvent(NULL, True, False, "MyEvent");

接着用CreateProcessWithLogonW 创建一个B用户的进程BB,BB中这样打开事件时失败呀
OpenEvent(EVENT_ALL_ACCESS ,False, "MyEvent");

为什么呢?相同用户时就可以打开
...全文
253 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fromgx 2010-02-03
  • 打赏
  • 举报
回复
不同用户事件可以打开了,感谢2楼提示,感谢1楼说的没错,顺便感谢3楼,描述符号问题
这是根据你们的提示搜索到的帖子,上面说的很清楚
http://hi.baidu.com/isafesoft/blog/item/5576b7ffff4b1c1c09244d83.html

根绝帖子上说 Global 在Vista下需要加,XP下不需要加,但我在XP下测试加不加都成功,所以加最安全。
主要是创建时的需要增加描述符来创建,并且打开时最好设置为EVENT_ALL_ACCESS,否则别的用户真的不能可靠的打开这些事件。
sjdev 2010-02-03
  • 打赏
  • 举报
回复
GetLastError(),然后使用ErrorLookup查查看错误描述。
robinwjb 2010-02-03
  • 打赏
  • 举报
回复
返回的错误是什么?
2个用户都是Administrator组里的用户吗?
fromgx 2010-02-03
  • 打赏
  • 举报
回复
1楼按你的意思如何搞
fromgx 2010-02-03
  • 打赏
  • 举报
回复
2楼,加了Global\ ,AA创建事件正常,但BB中还是打开事件失败,创建事件也失败
WizardK 2010-02-03
  • 打赏
  • 举报
回复
加不加Global要看系统环境
robinwjb 2010-02-03
  • 打赏
  • 举报
回复
CreateEvent的第4个参数改为:Global\\MyEvent
这样产生的Event才可以在用户会话之间共享。
Conry 2010-02-03
  • 打赏
  • 举报
回复
估计是不同用户安全描述符不同造成的

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧