Кто-нибудь знает приложение без GUI, которое можно вызывать из JavaScript для создания и сохранения снимков экрана рабочего стола? - PullRequest
0 голосов
/ 31 декабря 2008

Хотя объект может звучать так, будто я собираюсь сделать что-то странное, я не так; Я поддерживаю внутренний веб-сайт, используемый несколькими сотнями операторов телефонной связи, и хотел бы добавить следующую функциональность:

Я хотел бы добавить в заголовок всех веб-страниц элемент управления, который бы захватывал изображение всего рабочего стола и сохранял изображение в виде файла на общем сетевом диске, чтобы помочь в устранении неполадок в работе. Это приложение для захвата экрана будет называться JavaScript.

Я исследовал множество потоков на этом сайте, касающихся захвата скриншотов, и все предлагаемые приложения не удовлетворяют моим потребностям одним из двух способов:

  1. Приложение захвата экрана имеет всплывающий графический интерфейс, и пользователь выбирает какой-то элемент управления захватом или взаимодействует с окном, чтобы выполнить захват. Пользователи не очень хорошо разбираются в компьютерах, и им нельзя доверять при использовании «всплывающего» приложения - и было бы невозможно заставить их сохранить файл изображения с общим соглашением об именах файлов. Я бы хотел, чтобы пользователь нажал один элемент управления пользовательским интерфейсом на веб-сайте, и чтобы JavaScript выполнял вызовы для получения снимка экрана и сохранения изображения без дальнейшего взаимодействия с пользователем.

  2. Некоторые автоматизированные приложения сохраняют HTML, повторно публикуя его на сайте и «собирают» отдельные элементы HTML в изображение. Это не будет работать, так как входные данные, которые оператор ввел, должны быть в изображении, сайт использует AJAX, поэтому визуальное «состояние» веб-страницы будет отличаться от того, которое повторно получено из POST, и некоторых приложений возникли проблемы с безопасностью (в активном каталоге) при попытке взаимодействия с нашими (защищенными) веб-сайтами.

Если нет приложения, которое бы удовлетворяло эту потребность, я просто разверну свой собственный элемент управления в C #. Но я бы предпочел получить сторонний контроль. поэтому я не должен поддерживать свой собственный контроль над жизнью. : -)

Ответы [ 5 ]

0 голосов
/ 07 мая 2015

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>

Или скачайте этот файл и откройте его.

Это должно открыть вашу PSR. Он прост в использовании и может записывать всю информацию, необходимую для отладки.

0 голосов
/ 26 августа 2014

Сделал это один раз. Я не мог найти прямой путь, так что он сделал рендеринг HTML на холст, а затем холст на изображение с помощью html2canvas. Canvas to image - гораздо более распространенная тема, поэтому вы найдете множество уроков по ней.

HTML для холста

Холст к изображению

ПРИМЕЧАНИЕ: рендеринг из HTML в canvas может оставить некоторые элементы, такие как SVG. Но в целом все получилось так, как ожидалось.

0 голосов
/ 31 декабря 2008

Хорошо, чтобы сделать это, вам нужно что-то для взаимодействия с рабочим столом, что не может быть сделано одним только javascript.

Вам понадобится объект Active X, чтобы иметь возможность взаимодействовать с клиентским компьютером. Как только вы это сделаете, легко будет просто заставить объект сделать снимок и сохранить его в каталоге.

Мне кажется, у меня есть код C #, чтобы сделать снимок экрана. Если хочешь я выложу.

0 голосов
/ 01 января 2009

Некоторые альтернативы ActiveX / Java:

  • Вы можете создать флэш-программу для захвата экрана. Я этого не делал и не знаю деталей, но я вполне уверен, что это можно сделать.

  • Вы можете установить пользовательский протокол для захвата экрана (например, screencapture: //), и в заголовке укажите

    Снимок экрана

ссылка. Вам понадобится найти программу захвата экрана без графического интерфейса, чтобы выполнить фактическую съемку, и установить ее в качестве обработчика для этого пользовательского протокола.

0 голосов
/ 31 декабря 2008

Javascript не предоставляет доступ к локальной системе для этой функции из-за угрозы безопасности.

Я полагаю, что единственный способ сделать это на веб-странице, возможно, с помощью активного элемента управления X или Java-апплета (аналогично screencast-o-matic ), но даже тогда может возникнуть проблема с безопасностью.

Я также представляю, если ваш собственный элемент управления c # не находится в приложении Windows Form, он не будет работать, так как элементы управления c #, являющиеся частью веб-сайта, будут работать на сервере, а не на клиенте.

Надеюсь, это поможет.

...