📷

PyAutoGUIで指定ウィンドウをスクショする

に公開

はじめに

PyAutoGuiでキーボードやマウスを自動化する際にある指定のウィンドウのみをスクショしたいことがあったので調べてみました

プログラム

bash
pip install pyautogui

まずはpyautoguiをimportします

次に、pag.getWindowsWithTitle()に文字列でウィンドウ名を指定するとそのウィンドウの位置情報が分かるのでその位置情報をpag.screenshot()の第二引数のregionにtapleで渡してあげればいいです
スクショ取るときには前に他のウィンドウが被るとそのウィンドウも映り込んでしまうので、.activate()で指定ウィンドウをアクティブ化して最前面に持ってくるといいです

main.py
import pyautogui as pag

title = "Chrome"
win = pag.getWindowsWithTitle(title)[0]
win.activate()
pag.screenshot("screenshot.png", region=(win.left, win.top, win.width, win.height))

思ったよりも簡単でしたね

最後に

これを使えばopen-cvとかを使わずpyautoguiだけでpc自動化+スクショができるのはいいですね

Discussion