Что нового

Как перед закрытием скрипта сделать скриншот и сохранить его в файл?

agikon

Знающий
Сообщения
789
Репутация
16
Опять двадцать пять.
Вроде и искал но не нашел как такое провернуть. Не бейте сильно.
напишите пожалуйта код который бы делал скриншот экрана и сохранял его в файл формате jpeg или bmp вобщем без разницы каккой формат?

Такое возможно сделать?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
agikon
читай справку
Код:
_ScreenCapture_Capture
 

SECTOR

Продвинутый
Сообщения
398
Репутация
58
Код:
#include <ScreenCapture.au3>

OnAutoItExitRegister("_EndScript")

$sScreenCaptureFile = @ScriptDir&"\LastScreenShoot.png"

; Ваш код ....
MsgBox(32,@ScriptName,"Скрипт сделает скриншот перед выходом)"&@CRLF&"Файл:"&$sScreenCaptureFile)
Exit
; ....

Func _EndScript() ; Функция которая будет выполняться перед завершением

	_ScreenCapture_Capture($sScreenCaptureFile)
	ProcessClose(@AutoItPID) ; Это не обязательно! Моя плохая привычка)

EndFunc
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
Скриншот GUI:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ScreenCapture.au3>

$Form1 = GUICreate("Form1")
$Button = GUICtrlCreateButton('Exit', 100, 50, 100, 22)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE, $Button
			_ScreenCapture_CaptureWnd (@ScriptDir & "\Screenshot.jpg", $Form1, 0, 0, -1, -1, False)
			Exit
	EndSwitch
WEnd


Снять скриншот с монитора:
Код:
#include <ScreenCapture.au3>

_ScreenCapture_Capture(@ScriptDir & "\ScreenShot.jpg", 0, 0, @DesktopWidth, @DesktopHeight)


Если что, смотри справку. Там всё подробно пишут :smile:
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
что-то не пойму, именно строчку можете привести которая делает скрин?
целый скрипт мне не надо, мне именно тот код который скрин делает.
 

SECTOR

Продвинутый
Сообщения
398
Репутация
58
Код:
#include <ScreenCapture.au3> ; Это ОБЯЗАТЕЛЬНО, чтоб работала функция _ScreenCapture_Capture
_ScreenCapture_Capture("ScreenShoot.png") ; Вот эта строчка делает "скрин"


А вообще посоветую ВНИМАТЕЛЬНЕЕ ЧИТАТЬ СПРАВКУ! Там это есть!
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
кажись всё получилось.
спасибо вам большое за помощь.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
agikon

{TopicSolvedInfo}
 

xlgrgrc

Знающий
Сообщения
91
Репутация
7
Вопрос в догонку. Как сделать скрин определенной области экрана. Допустим скрин квадрата начало 100, 100 и по 500, 500
 
Верх