gpt4 book ai didi

windows - 一个进程能否向另一个进程以不同用户名创建的事件发出信号(两个进程都以不同用户名运行)?

转载 作者:可可西里 更新时间:2023-11-01 10:27:55 24 4
gpt4 key购买 nike

发生在 Windows 7 中:

我已将进程 proc1.exe 安装为服务。在 proc1 中,我通过创建 session ID 和 token 并传递给 CreateProcessAsUser() 来创建新进程 proc2.exe。

在 Proc2 中,我正在创建一个等待信号的事件。在 Proc1 中,当我停止服务时,我通过 OpenEvent 和 SetEvent 向该事件发送信号。

如果我启动服务,proc1.exe 在 SYSTEM 用户名下运行,proc2.exe 在登录用户名 (Taskmanager) 下运行。

当我停止服务时,Proc1 正尝试通过调用 OpenEvent 发送信号。但是 OpenEvent 返回 NULL。

两个进程都在不同的用户下运行。访问该事件有问题吗?如果是这样,如何在不同的进程和用户下发出事件信号?请帮我找出答案......

最佳答案

您的事件可能在创建它的 session 中是本地的,即如果 Proc2 创建了一个名为“ShutdownSystem”的事件,那么该事件只有该 session 中的其他进程知道,就像函数中的局部变量一样。

如果您希望您的事件对象以全局方式存在并且可以从其他 session 访问,您应该在它前面加上“Global\”(例如,将其命名为“Global\ShutdownSystem”)。然后系统会在全局命名空间中创建它。

关于windows - 一个进程能否向另一个进程以不同用户名创建的事件发出信号(两个进程都以不同用户名运行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com