代码之家  ›  专栏  ›  技术社区  ›  Roman Motyka James Nugent

windows服务的屏幕截图

  •  4
  • Roman Motyka James Nugent  · 技术社区  · 17 年前

    我有一个基于DirectShow的屏幕截图软件。在内部,它调用CopyScreenToBitmap函数来抓取屏幕。然后,图片被ffdshow压缩。 它作为桌面应用程序运行良好,但作为窗口服务,在某些计算机上无法运行(黑色图片)。我已设置“允许服务与桌面交互”,并在当前用户帐户上运行该服务。

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

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

    2 回复  |  直到 16 年前
        1
  •  4
  •   Jon Grant    17 年前

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

    推荐文章