0

虽然这个主题听起来像是我想做一些狡猾的事情,但我不是;我维护一个由数百家电话运营商使用的内部网站,并希望添加以下功能:

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

我在这个站点上研究了许多与捕获屏幕截图有关的线程,并且所有提供的应用程序都无法通过以下两种方式之一满足我的需求:

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

  2. 一些自动化应用程序通过将 HTML 重新发布到站点并将各个 HTML 元素“重新组合”成图像来保存 HTML。这将不起作用,因为操作员输入的输入数据需要在图像中,该站点使用 AJAX,因此网页的视觉“状态”将与从 POST 重新获得的不同,并且某些应用程序尝试与我们的(安全)网站交互时遇到(活动目录)安全问题。

如果没有可以满足此需求的应用程序,我将在 C# 中滚动我自己的控件。但我宁愿获得第三方控制。所以我不必支持自己对生活的控制。:-)

4

5 回答 5

0

Some alternatives to ActiveX / Java:

  • You can create a flash program to do the screen capture. I haven't done this and don't know the details, but I'm fairly sure it can be done.

  • You can setup a custom protocol for screen capture (eg. screencapture:// ), and in your header include a

    <a href="screencapture://this/">Screen Capture</a>

link. You'll need to find a gui-less screen capture program to do the actual capturing and set it up as the handler for that custom protocol.

于 2008-12-31T23:23:06.533 回答
0

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

我相信在网页上执行此操作的唯一方法可能是通过活动的 X 控件或 Java 小程序(类似于screencast-o-matic),但即便如此,安全性也可能是一个问题。

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

希望这个对你有帮助。

于 2008-12-31T18:25:45.107 回答
0

要做到这一点,您需要一些东西来与桌面交互,而这不能仅由 javascript 完成。

您需要有一个 Active X 对象才能与客户端的机器进行交互。一旦你有了它,就很容易让对象拍照并将其保存到目录中。

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

于 2008-12-31T18:26:47.147 回答
0

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

HTML 到画布

画布图像

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

于 2014-08-26T19:11:49.833 回答
0

PSR(问题步骤记录器)是用于在客户端机器上进行调试的绝佳工具,默认情况下可在所有 Windows 机器上使用。

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

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

第一步:注册 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>

或者下载这个文件并打开它。

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

于 2015-05-07T14:41:10.300 回答