有人知道可以从JavaScript调用无GUI应用程序来创建和保存桌面屏幕截图吗?

有人知道可以从JavaScript调用无GUI应用程序来创建和保存桌面屏幕截图吗?,javascript,user-interface,screen-scraping,Javascript,User Interface,Screen Scraping,虽然这个主题听起来像是我在做一些诡计多端的事情,但我不是;我维护了一个供数百个电话运营商使用的内部网站,并希望添加以下功能: 我想在所有网页的标题中添加一个控件,该控件将捕获整个桌面的图像,并将图像作为文件保存到共享网络驱动器,以帮助解决生产问题。这个屏幕截图应用程序将由JavaScript调用 我在这个网站上研究了许多关于截图的帖子,但所有提供的应用程序都不能满足我的两种需要: 屏幕捕获应用程序有一个弹出的GUI,用户可以调整某种捕获控件的大小,或者与窗口交互以进行捕获。用户不太懂计算机,不能

虽然这个主题听起来像是我在做一些诡计多端的事情,但我不是;我维护了一个供数百个电话运营商使用的内部网站,并希望添加以下功能:

我想在所有网页的标题中添加一个控件,该控件将捕获整个桌面的图像,并将图像作为文件保存到共享网络驱动器,以帮助解决生产问题。这个屏幕截图应用程序将由JavaScript调用

我在这个网站上研究了许多关于截图的帖子,但所有提供的应用程序都不能满足我的两种需要:

屏幕捕获应用程序有一个弹出的GUI,用户可以调整某种捕获控件的大小,或者与窗口交互以进行捕获。用户不太懂计算机,不能信任用户正确使用弹出式应用程序,而且不可能强制他们使用通用的文件命名约定保存图像文件。我希望用户在一个网站上按下一个UI控件,让JavaScript调用以获取屏幕截图并保存图像,而无需任何进一步的用户交互

一些自动化应用程序通过重新发布到站点并将单个HTML元素重新组装成图像来保存HTML。这将不起作用,因为操作员键入的输入数据需要在图像中,该网站使用AJAX,因此网页的视觉状态将不同于从帖子中重新获得的视觉状态,并且一些应用程序在尝试与我们的安全网站交互时存在active directory安全问题


如果没有一个应用程序可以满足这一需求,我就用C语言实现我自己的控件。但我更愿意获得第三方控件。所以我不必支持自己的生活控制-

由于存在安全风险,Javascript不提供对此功能的本地系统访问权限

我相信在网页上实现这一点的唯一方法可能是通过与类似的activex控件或javaapplet,但即使这样,安全性也可能是一个问题

除非您自己的c控件位于windows窗体应用程序中,否则它将无法工作,因为作为网站一部分的c控件将在服务器而不是客户端上运行


希望这能有所帮助。

要做到这一点,您需要一些与桌面交互的东西,而单靠javascript是无法做到的

您需要有一个活动的X对象才能与客户机交互。一旦你有了它,就很容易让对象拍一张照片并保存到目录中


我相信我有C代码来截屏。如果您愿意,我会发布它。

ActiveX/Java的一些替代方案:

您可以创建一个flash程序来进行屏幕捕获。我还没有做到这一点,也不知道细节,但我相当肯定这是可以做到的

您可以为屏幕捕获设置,例如屏幕捕获://,并在标题中包括


链接。您需要找到一个无gui的屏幕捕获程序来执行实际捕获,并将其设置为该自定义协议的处理程序。

做过一次。我找不到一种直接的方法,所以它使用html2canvas将HTML呈现到画布,然后将画布呈现到图像。画布到图像是一个更为常见的主题,因此您可以找到许多关于画布到图像的教程


注意:从HTML到画布的渲染可能会留下一些元素,如SVG。但总的来说,它做的和预期的一样多。

PSR问题步进记录器是一个很好的工具,用于在客户端机器上进行调试,默认情况下,它在所有windows机器上都可用

试试下面,看看它是否适合你

转到开始->运行并键入psr.exe或仅psr。这将打开记录器。这相当容易使用,因此即使是用户/客户端也可以使用它。如果可行,请尝试以下步骤进行设置

步骤1:注册PSR协议。这将告诉浏览器当页面上的链接引用我们将用于打开此记录器的PSR协议时该怎么做。 -创建注册表值,如下所示

HKEY_CLASSES_ROOT/
  PSR/
    (Default)    "URL:PSR Protocol"
    URL Protocol ""
    shell/
      open/
        command/
          (Default) psr.exe
如果您不习惯创建注册表值,请下载并双击文件

使用链接获取更多信息。 步骤2:现在创建一个示例html文件来测试启动PSR。 将下面的代码保存到index.html文件并打开它

<html>
   <head>
      <head>
   </head>
   <body>
      <a href="psr:start">Start Recording</a>
   </body>
   </head>
</html>
或者下载文件并打开它

<html>
   <head>
      <head>
   </head>
   <body>
      <a href="psr:start">Start Recording</a>
   </body>
   </head>
</html>

这将打开您的PSR。它易于使用,可以记录调试所需的所有信息。

您的用户知道旧的打印屏幕按钮和电子邮件吗?从你提到的c语言中,我假设它们是基于PC的。而且,你必须对每种浏览器采用不同的实现方式。