我有基于DirectShow的屏幕捕获软件。在内部,它调用CopyScreenToBitmap函数来抓取屏幕。然后图片被ffdshow压缩。 它作为桌面应用程序工作正常,但作为窗口服务,在某些计算机上它不起作用(黑色图片)。我设置了“允许服务与桌面交互”并在当前用户帐户上运行该服务。 什么想法可能是错的?
我在Windows XP上测试它,但它也适用于Vista和7。
是的,它适用于所有计算机上的桌面应用程序,但在其中一些计算机上(大多数计算机上)它作为服务失败。
答案 0 :(得分:3)
据我了解,Vista中的一项更改将服务移动到与控制台用户不同的桌面上。虽然您勾选了“允许访问”桌面的框,但我认为您仍然需要务实地切换服务以使用该桌面。
答案 1 :(得分:3)
除了允许访问桌面外,请尝试此操作:
然后使用以下几种方法之一获取桌面的DC,包括
的CreateDC(TEXT( “DISPLAY”),NULL,NULL,NULL)
祝你好运答案 2 :(得分:0)
您是否测试过桌面应用程序在作为服务失败的同一台计算机上是否成功?