gpt4 book ai didi

c++ - 为什么 EnumWindows 在服务中不工作?

转载 作者:行者123 更新时间:2023-11-27 22:56:43 24 4
gpt4 key购买 nike

我只是想枚举系统中的所有顶级窗口。当我在 exe 中使用 EnumWindows 函数时,它会枚举所有窗口。相反,我在服务中使用了我不能使用的服务。它只枚举

C:\Windows\System32\spool\tools\pnt\rpccp.exeC:\Windows\System32\spool\tools\pnt\winfsmgr.exe

仅这些 exe。我正在创建如下服务。

schService = CreateService(schSCManager, pServiceName, pServiceName, SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,pModuleFile, NULL, NULL, NULL, NULL, NULL );

是否需要任何权限才能从此应用程序(服务)与其他应用程序进行通信。或者我进一步做 enumwindows。

最佳答案

服务在 session 0 中运行,具有非交互式桌面。交互式桌面在 session 1 和更高版本中运行。 EnumWindows 枚举调用进程桌面中的窗口。您的服务不在交互式用户的桌面上运行。

如果要枚举特定桌面上的窗口,则需要在该桌面上执行该进程。服务是该工作的错误工具。如果您绝对需要知道服务中的信息,则需要在该服务和目标桌面上运行的另一个进程之间使用 IPC。

关于c++ - 为什么 EnumWindows 在服务中不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177233/

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