10 Май, 2018

Скриншот (Screenshot) из 1С с помощью PowerShell

Spread the love

Код скрипта powershell для создания скриншота (принтскрина) из самого powershell

[void][Reflection.Assembly]::LoadWithPartialName(""System.Windows.Forms"")
$SysInfoScreen = [Windows.Forms.SystemInformation]::VirtualScreen
$DrawingBitmap = new-object Drawing.Bitmap $SysInfoScreen.width, $SysInfoScreen.height
$DrawingGraphics = [Drawing.Graphics]::FromImage($DrawingBitmap)
$DrawingGraphics.CopyFromScreen($SysInfoScreen.location,[Drawing.Point]::Empty, $SysInfoScreen.size)
$DrawingGraphics.Dispose()
$DrawingBitmap.Save("С:\Путь\К\Файлу\Картинки.png")
$DrawingBitmap.Dispose()

Код скрипта powershell обернутый для работы в 1С

ИмяФайлаШелл = ПолучитьИмяВременногоФайла(".ps1");
ИмяФайлаКартинки = ПолучитьИмяВременногоФайла(".png");
  
Док = Новый ТекстовыйДокумент;
Текст = "[void][Reflection.Assembly]::LoadWithPartialName(""System.Windows.Forms"")
|$SysInfoScreen = [Windows.Forms.SystemInformation]::VirtualScreen
|$DrawingBitmap = new-object Drawing.Bitmap $SysInfoScreen.width, $SysInfoScreen.height
|$DrawingGraphics = [Drawing.Graphics]::FromImage($DrawingBitmap)
|$DrawingGraphics.CopyFromScreen($SysInfoScreen.location,[Drawing.Point]::Empty, $SysInfoScreen.size)
|$DrawingGraphics.Dispose()
|$DrawingBitmap.Save(""" + ИмяФайлаКартинки + """)
|$DrawingBitmap.Dispose()";
Док.УстановитьТекст(Текст);
Док.Записать(ИмяФайлаШелл);

КОМОбъект =  Новый COMОбъект ("WScript.Shell");
КОМОбъект.Run("powershell -ExecutionPolicy RemoteSigned -File """ + ИмяФайлаШелл + """", 0, ИСТИНА);

// тут обрабатываете картинку как вам нужно
....Картинка = ИмяФайлаКартинки;
  
УдалитьФайлы(ИмяФайлаШелл);

 

Из тех, кто с компьютером на ты еще со школьной скамьи.

UzBeast

Из тех, кто с компьютером на ты еще со школьной скамьи.

Вам также может понравится...

Добавить комментарий