c++ - windows服务可以枚举桌面顶级windows吗
问题描述
我正在尝试从用 C++ 编码的服务中枚举顶级窗口
所以我正在使用这段代码:
auto desktop = OpenInputDesktop( 0, FALSE, DESKTOP_READOBJECTS);
if (!desktop) log_file << "[*] OpenDesktopA failed with error : " << GetLastError() << endl;
BOOL rs = EnumDesktopWindows(desktop, EnumProc, 0);
if (!rs) log_file << "[*] EnumDesktopWindows failed with error : " << GetLastError() << endl;
EnumDesktopWindows 在没有调用 EnumProc 的情况下失败,因此 GetLastError 返回零
相同的代码适用于非服务程序
是否可以在服务中执行此操作但我做错了什么?或者我无法做到这一点?
解决方案
最终的解决方案似乎是创建一个辅助进程,它将列出窗口并找到所需窗口的 id,然后通过管道或套接字或其他通信技术将其发送到服务
推荐阅读
- python - 如何更改任务中两次迭代之间的间隔
- flutter - 当用户尝试使用 flutter_inappwebview 在移动应用程序中上传文件时,如何请求用户权限?
- google-apps-script - Google Apps 脚本:电子邮件配额和失败的邮件
- windows - 通过 ssh 连接到 QEMU 上的 QNX
- c# - 升级 Swashbuckle.AspNetCore 6.0.1 后出现的新模型
- python - Matplotlib y 轴范围
- android - 从 kotlin dsl gradle 文件中的 rootproject 文件应用插件
- javascript - Stripe:印度发行的卡的非印度货币支付失败
- r - R - 如何不将所有条件与pairwise.t.test进行比较
- angular - OpenLayers 点击图标不会触发交互