Printscreen (Lua)

Материал из UoPilot
Версия от 17:09, 25 октября 2020; Cirus (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

printscreen - команда сохранения копии экрана в файл.

Синтаксис

Привязка к окну: опционально.
Работа со свернутым окном: нет.
Работа с перекрытым окном: Да. Привязка к окну обязательна. Aero (темы Windows7) должен быть включен. Если был установлен Астер, то он должен быть отключен, а система перезагружена.
Все параметры заключаются в скобки и разделяются запятыми. Путь указывается в кавычках.

printscreen (<handle>, <x>, <y>, <width>, <height>, <path>)

Где:
handle - хендл окна. Для работы с перекрытом окном иногда нужно указывать родительское окно.
x - Координата X
y - Координата Y
width - Ширина, если 'width' = 0, то берётся максимальное возможное значение.
height - Высота, если 'height' = 0, то берётся максимальное возможное значение.
path - Путь для сохранения изображения.

Примеры

--lua
printscreen (0, 0, 0, 0, 0, [[C:\window.jpg]])   -- скрин всего экрана
--lua
printscreen (0, 0, 0, 300, 300, [[C:\window1.jpg]])   -- скрин от левого верхнего угла экрана, размером 300*300
--lua
printscreen (0, 500, 500, 200, 200, [[C:\window2.jpg]])   -- скрин экрана от координат 500 500, размером 200*200
--lua
-- сделать 5 скринов с интервалом 1,5 секунды
-- сохраняются на диск C: в формате: день.месяц.год_час.минута.секунда
for _ = 1, 5 do
    printscreen (0, 0, 0, 0, 0, [[C:\]] .. os.date("%d.%m.%Y") .. "_" .. os.date("%H.%M.%S") .. [[.jpg]])
    wait (1500)
end
hint ("Скрины сделаны")

Примеры для скринов перекрытых (не свёрнутых!) окон:
Привязка к окну обязательна. Окна могут находиться за пределами экрана. Если на скрине "чёрный квадрат", значит надо указывать родительское окно.

--lua
local h = findwindow ("UoPilot")                              -- найти окно UoPilot
if h then  -- если окно найдено
    printscreen (h[1][1], 0, 0, 0, 0, [[C:\window4.jpg]])   -- скрин рабочего окна
end
--lua
local h = findwindow ("UoPilot")                                    -- найти окно UoPilot
if h then  -- если окно найдено
    printscreen (h[1][1], 100, 100, 80, 80, [[C:\window5.jpg]])   -- скрин рабочего окна от координат 100 100, размером 80 на 80
end

Смотрите также

Findimage (Lua)