gifts2017

Программное создание скриншотов из 1С

Опубликовал Алексей С (terroristish) в раздел Обработки - Универсальные обработки

Пример программного создания снимков экрана (скриншотов) непосредственно из 1С.

Суть обработки:

С помощью COM Объекта "WScript.Shell" производится запуск MS PowerShell. При запуске PowerShell параметром передаётся скрипт выполнения снимка экрана. Снимок сохраняется во временный каталог, отображается на экране и далее удаляется.

Возможное применение:

Автоматизация сбора ошибок от пользователей. Не все пользователи занают, что можно снимок экрана сделать. Из тех, кто знает, не каждый может его к письму, и/или запросу в сервис деск приложить.

Во вложении обработка-пример для обычного приложения.

Скрипт PowerShell (строка 1С):

Текст = """& {[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');"
+ "$size = [Windows.Forms.SystemInformation]::VirtualScreen;"
+ "$bitmap = new-object Drawing.Bitmap $size.width, $size.height;"
+ "$graphics = [Drawing.Graphics]::FromImage($bitmap);"
+ "$graphics.CopyFromScreen($size.location,[Drawing.Point]::Empty, $size.size);"
+ "$graphics.Dispose();"
+ "$bitmap.Save('"+ИмяФайла+"');"
+ "$bitmap.Dispose()}""";

Скачать файлы

Наименование Файл Версия Размер
Скриншот.epf 50
.epf 9,77Kb
08.05.15
50
.epf 9,77Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. set5553 KUKA (set5553) 08.05.15 05:15
Интересно. а как дальше допустим по почте передавать, если "создается временный файл, а потом удаляется"? УФ тестировали?
2. Алексей С (terroristish) 08.05.15 10:25
Файл скриншота создаётся в каталоге временных файлов. После создания он загружается в элемент формы (поле картинки) и удаляется из каталога временных файлов за ненадобностью. Это логично, т.к. данная обработка не является законченным решением, а лишь служит примером, того как можно сделать скриншот программно.
По поводу использования в УФ, могу сказать, что точно так же сделать не получится. В виду того, что согласно синтаксис-помощнику, если картинка задается программно, то может быть установлена либо пустая картинка, либо или картинка из библиотеки. Конечно можно выкрутиться и всё равно, его (скриншот) отобразить, например с помощью HTML.
Сейчас добавлю пример для УФ.
3. eugenie zheludkov (eugeniezheludkov) 12.05.15 01:46
<Зануда>
Возможное приминение:
<\Зануда>
4. Алексей С (terroristish) 12.05.15 11:59
(3) eugeniezheludkov, спасибо! Поправил.
5. Яков Коган (Yashazz) 13.05.15 07:49
Это знаете где хорошо применять? Я такое делал, когда меня попросили распечатывать яндекс-карту из 1С. Выяснилось, что API яндекса печатать не умеет, они сами-то долго мучались и через static api сделали, а в 1С вилы. В результате я выводил карту в форму, открытую модально в режиме рабочего стола (обычный интерфейс, не УФ), её скриншотил, а уж рисунок распечатывал. Тоже через WScript делал, кстати.
6. Вадим Миляев (PrinzOfMunchen) 13.05.15 09:27
(2) terroristish, а с помощью этого скрипта можем сделать скриншот определенной области? А вообще, можно ли как нибудь табличный документ сконвертировать в картинку другим способом?
7. xaozai 13.05.15 09:36
Есть ВК, которая скрины делает: http://infostart.ru/public/172868/
PowerShell не у всех есть.
8. Алексей С (terroristish) 13.05.15 14:48
(6) PrinzOfMunchen, "а с помощью этого скрипта можем сделать скриншот определенной области?" - с помощью представленного мною скрипта - нет. Нужно скрипт править.
"можно ли как нибудь табличный документ сконвертировать в картинку" - на мой взгляд, этот вопрос, никак не связан с данной публикацией. Стандартными средствами платформы табличный документ нельзя сохранить в картинку. Смотрите в СП ТабличныйДокумент метод Записать() и/или ТипФайлаТабличногоДокумента.
9. Алексей С (terroristish) 13.05.15 14:59
(7) xaozai, Спасибо за ссылку. Особенно ценно, что компонента разработана по технологии Native API. Что PowerShell не у всех есть - согласен.
Всё таки очевидный плюс моего решения, заключается в отсутствии необходимости использования сторонних ВК.
10. Александр Крынецкий (echo77) 10.08.16 20:11
Рекомендую, все таки проверить опечатки вордом
Не все пользователи занают,