gpt4 book ai didi

c# - 来自 Windows 服务的屏幕截图

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:11 25 4
gpt4 key购买 nike

我有基于 DirectShow 的屏幕捕获软件。它在内部调用 CopyScreenToBitmap 函数来抓取屏幕。然后图片经过ffdshow压缩。它作为桌面应用程序工作正常,但作为窗口服务,在某些计算机上它不起作用(黑色图片)。我已设置“允许服务与桌面交互”并在当前用户帐户上运行该服务。有什么想法可能是错误的吗?

我在 Windows XP 上测试过它,但预计它也能在 Vista 和 7 上运行。

是的,它在所有计算机上都可以作为桌面应用程序运行,但在某些计算机上(在大多数计算机上)它无法作为服务运行。

最佳答案

除了允许访问桌面之外,还可以试试这个:

  1. 枚举所有窗口站:EnumWindowStations
  2. 为登录用户找到窗口站,并将其设为您进程的窗口站:SetProcessWindowStation - 参见示例 in this thread
  3. 然后将当前线程的桌面设置为窗口站的默认桌面also here
  4. 然后使用几种方法之一获取桌面的 DC,包括

    CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)

    祝你好运

关于c# - 来自 Windows 服务的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002064/

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