Что нового

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

agikon

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

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

kaster

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

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Код:
#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
Репутация
660
Скриншот 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
Репутация
17
что-то не пойму, именно строчку можете привести которая делает скрин?
целый скрипт мне не надо, мне именно тот код который скрин делает.
 

SECTOR

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


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

agikon

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

kaster

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

{TopicSolvedInfo}
 

xlgrgrc

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