ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Скриншот активного окна (https://forum.antichat.xyz/showthread.php?t=1392273)

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
(
'Не существует окна с таким именем.'
)



Время: 01:53