如何让程序在作为 Windows 服务运行时截取其本身

本文关键字:运行时 服务 截取 Windows 程序 | 更新日期: 2023-09-27 18:30:34

可能的重复项:
Windows 服务下的进程屏幕截图

我正在尝试或多或少地模拟 Infopath 表单服务。因此,我希望能够通过移动设备批准或拒绝表单(将通过电子邮件通知用户)。我有能力批准/不批准表单,但问题是我需要能够拍摄我的程序的屏幕截图以进行详细的错误报告(以防在批准过程中出现问题)(屏幕截图过程已经实现)。我需要能够在没有任何用户登录的情况下在服务器上运行该程序。这就是问题所在。如果我将程序作为服务运行,则不会获得交互式窗口,但可以始终运行程序。因此,我需要能够在计算机启动时启动该程序,并使其能够自行截图。

有没有办法让 Windows 服务在启动时有一个交互式窗口,即使它从屏幕上绘制并且用户永远看不到,或者有一种方法可以模拟/伪造我的程序的窗口,以便它可以截取自身而无需实际需要交互式窗口?

另外,我的程序是用 c# 在 .NET 框架上编写

如何让程序在作为 Windows 服务运行时截取其本身

除了服务没有桌面可以渲染之外...

我们没有按照您尝试的方式在服务器上实现 InfoPath 表单的呈现,因为它根本无法正常工作。您可以作弊一段时间,但在服务器上以无外设服务模式运行 Office 应用程序简直是个坏主意。您还会遇到有趣的问题,因为用户的身份与进程身份不匹配(即无法查询 ACL 数据)。

您的选项:

  • 删除信息路径部分,如果你只需要批准。
  • 使用现有的移动表单解决方案。Forms Services 中对移动窗体有一些支持,如果它有效,您可以专门为移动设备提供非常简单的视图。还有用于移动呈现 InfoPath 表单的现有解决方案。
  • 诚实地实现表单的呈现。XSN 格式已记录在案...
  • 在单独的计算机上呈现 InfoPath,登录用户一次每个用户一个...