Printscreen (Lua): различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: « == Описание == '''printscreen''' - команда сохранения копии экрана в файл. == Синтаксис == Привязка к...»)
 
 
(не показана 1 промежуточная версия 1 участника)
Строка 5: Строка 5:
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: опционально.
 
Привязка к окну: опционально.
<br>Работа со свернутым окном: нет.
+
<br>Работа со свернутым окном: нет.
&lt;br>Работа с перекрытым окном: Да. Привязка к окну обязательна. Aero (темы Windows7) должен быть включен. Если был установлен Астер, то он должен быть отключен, а система перезагружена.
+
<br>Работа с перекрытым окном: Да. Привязка к окну обязательна. Aero (темы Windows7) должен быть включен. Если был установлен Астер, то он должен быть отключен, а система перезагружена.
&lt;br>Все параметры заключаются в скобки и разделяются запятыми. Путь указывается в кавычках.
+
<br>Все параметры заключаются в скобки и разделяются запятыми. Путь указывается в кавычках.
  printscreen (&lt;handle>, &lt;x>, &lt;y>, &lt;width>, &lt;height>, &lt;path>)
+
  printscreen (<handle>, <x>, <y>, <width>, <height>, <path>)
 
Где:
 
Где:
&lt;br>'''handle''' - хендл окна. Для работы с перекрытом окном иногда нужно указывать родительское окно.
+
<br>'''handle''' - хендл окна. Для работы с перекрытом окном иногда нужно указывать родительское окно.
&lt;br>'''x''' - Координата X
+
<br>'''x''' - Координата X
&lt;br>'''y''' - Координата Y
+
<br>'''y''' - Координата Y
&lt;br>'''width''' - Ширина, если 'width' = 0, то берётся максимальное возможное значение.
+
<br>'''width''' - Ширина, если 'width' = 0, то берётся максимальное возможное значение.
&lt;br>'''height''' - Высота, если 'height' = 0, то берётся максимальное возможное значение.
+
<br>'''height''' - Высота, если 'height' = 0, то берётся максимальное возможное значение.
&lt;br>'''path''' - Путь для сохранения изображения.
+
<br>'''path''' - Путь для сохранения изображения.
  
 
== Примеры ==
 
== Примеры ==
 
  --lua
 
  --lua
  printscreen (0, 0, 0, 0, 0, "C:\window.jpg")  -- скрин всего экрана
+
  printscreen (0, 0, 0, 0, 0, <nowiki>[[C:\window.jpg]]</nowiki>)  -- скрин всего экрана
  
 
  --lua
 
  --lua
  printscreen (0, 0, 0, 300, 300, "C:\window1.jpg")  -- скрин от левого вернего угла экрана, размером 300*300
+
  printscreen (0, 0, 0, 300, 300, <nowiki>[[C:\window1.jpg]]</nowiki>)  -- скрин от левого верхнего угла экрана, размером 300*300
  
 
  --lua
 
  --lua
  printscreen (0, 500, 500, 200, 200, "C:\window2.jpg")  -- скрин экрана от координат 500 500, размером 200*200
+
  printscreen (0, 500, 500, 200, 200, <nowiki>[[C:\window2.jpg]]</nowiki>)  -- скрин экрана от координат 500 500, размером 200*200
  
 
  --lua
 
  --lua
Строка 31: Строка 31:
 
  -- сохраняются на диск C: в формате: день.месяц.год_час.минута.секунда
 
  -- сохраняются на диск C: в формате: день.месяц.год_час.минута.секунда
 
  for _ = 1, 5 do
 
  for _ = 1, 5 do
     printscreen (0, 0, 0, 0, 0, &lt;nowiki>[[C:\]]&lt;/nowiki> .. os.date("%d.%m.%Y") .. "_" .. os.date("%H.%M.%S") .. &lt;nowiki>[[.jpg]]&lt;/nowiki>)
+
     printscreen (0, 0, 0, 0, 0, <nowiki>[[C:\]]</nowiki> .. os.date("%d.%m.%Y") .. "_" .. os.date("%H.%M.%S") .. <nowiki>[[.jpg]]</nowiki>)
 
     wait (1500)
 
     wait (1500)
 
  end
 
  end
Строка 37: Строка 37:
  
 
'''Примеры для скринов перекрытых (не свёрнутых!) окон:'''
 
'''Примеры для скринов перекрытых (не свёрнутых!) окон:'''
&lt;br>Привязка к окну обязательна. Окна могут находиться за пределами экрана. Если на скрине "чёрный квадрат", значит надо указывать родительское окно.
+
<br>Привязка к окну обязательна. Окна могут находиться за пределами экрана. Если на скрине "чёрный квадрат", значит надо указывать родительское окно.
 
    
 
    
 
  --lua
 
  --lua
 
  local h = findwindow ("UoPilot")                              -- найти окно UoPilot
 
  local h = findwindow ("UoPilot")                              -- найти окно UoPilot
 
  if h then  -- если окно найдено
 
  if h then  -- если окно найдено
     printscreen (h[1][1], 0, 0, 0, 0, &lt;nowiki>[[C:\window4.jpg]]&lt;/nowiki>)  -- скрин рабочего окна
+
     printscreen (h[1][1], 0, 0, 0, 0, <nowiki>[[C:\window4.jpg]]</nowiki>)  -- скрин рабочего окна
 
  end
 
  end
  
Строка 48: Строка 48:
 
  local h = findwindow ("UoPilot")                                    -- найти окно UoPilot
 
  local h = findwindow ("UoPilot")                                    -- найти окно UoPilot
 
  if h then  -- если окно найдено
 
  if h then  -- если окно найдено
     printscreen (h[1][1], 100, 100, 80, 80, &lt;nowiki>[[C:\window5.jpg]]&lt;/nowiki>)  -- скрин рабочего окна от координат 100 100, размером 80 на 80
+
     printscreen (h[1][1], 100, 100, 80, 80, <nowiki>[[C:\window5.jpg]]</nowiki>)  -- скрин рабочего окна от координат 100 100, размером 80 на 80
 
  end
 
  end
  

Текущая версия на 17:09, 25 октября 2020

Описание

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)