PDA

Просмотр полной версии : Скриншот активного окна


laiser
26.06.2021, 13:02
Всем привет, необходимо сделать скриншот активного окна.

Использую библиотеку pyautogui, там есть функция "pyautogui.screenshot()" которая скринит весь экран.

Есть доп. аргумент region, который принимает координаты.

Я понимаю, что нужно ввести координа и он заскринит нужную область, но Если приложение находится в другом месте или размер у окна другой.

Может какую-то другую библиотеку юзать? api win32 не подходит, так как нужно и для линукс.

Подскажите пожалуйста, как мне сделать скрин активного экрана с помощью питона?

pomidorq
13.08.2021, 00:17
Python:






import
pyautogui
import
win32gui
def
screenshot
(
window_title
=
None
)
:
if
window_title
:
title_exists
=
win32gui
.
FindWindow
(
None
,
window_title
)
if
title_exists
:
win32gui
.
SetForegroundWindow
(
title_exists
)
x
,
y
,
x1
,
y1
=
win32gui
.
GetClientRect
(
title_exists
)
x
,
y
=
win32gui
.
ClientToScreen
(
title_exists
,
(
x
,
y
)
)
x1
,
y1
=
win32gui
.
ClientToScreen
(
title_exists
,
(
x1
-
x
,
y1
-
y
)
)
im
=
pyautogui
.
screenshot
(
region
=
(
x
,
y
,
x1
,
y1
)
)
return
im
else
:
print
(
'Не существует окна с таким именем.'
)
else
:
im
=
pyautogui
.
screenshot
(
)
return
im
try
:
im
=
screenshot
(
'San Andreas Multiplayer 0.3.7'
)
#Пишешь название окна в точности до символа.
im
.
show
(
)
except
:
print
(
'Не существует окна с таким именем.'
)