【问题标题】:Cannot capture screen无法截屏
【发布时间】:2009-10-20 16:18:45
【问题描述】:

我有一个在客户端机器上运行的 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;

可能是什么原因,我该如何解决?

【问题讨论】:

    标签: c# windows-services screenshot


    【解决方案1】:

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

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

    【讨论】:

    • 你现在正式成为我们公司的英雄。
    • 我不确定这如何回答这个问题。决议是什么?
    • @Michael 我为这个问题添加了一个可能的解决方案。
    • 那么“与桌面交互”复选框有什么用处?
    猜你喜欢
    • 2019-05-24
    • 2020-01-25
    • 2017-12-15
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    相关资源
    最近更新 更多