无法捕捉屏幕

时间:2009-10-20 16:18:45

标签: c# windows-services screenshot

我在客户端计算机上运行了一个Windows服务。我需要捕获客户端的屏幕并通过远程处理将其发送到服务器。当我运行exe文件时,它可以捕获屏幕并将其发送到服务器。但是当我将其作为服务运行时,它会记录以下错误:

“句柄无效。”

选中服务的“与桌面交互”复选框。我用于截图的代码是:

Image bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
Graphics  gfxScreenshot = Graphics.FromImage(bmpScreenshot);
gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
return bmpScreenshot;

可能是什么原因以及如何解决?

1 个答案:

答案 0 :(得分:5)

服务在会话0(从Vista开始)运行,而应用程序的其余部分则不运行。

您需要在使用(例如)Run注册表项登录后在用户会话中运行屏幕捕获应用程序。