2017-08-20 23 views
3

私は現在、別のプロセスウィンドウをキャプチャできるモジュールまたはコードを探しています。Pythonでウィンドウをキャプチャする

私はImageGrabを使ってみましたが、特定のプロセスウィンドウにバインドするのではなく、画面の領域をキャプチャするだけです。私は小さなモニターで作業しているので、画面のキャプチャされた領域に何かが重なり合わないことを保証することはできません。悲しいことに、ImageGrabソリューションでは十分ではありません。

答えて

1

win32guiを使用してこれを達成できます。

from PIL import ImageGrab 
import win32gui 

hwnd = win32gui.FindWindow(None, r'Window_Title') 
win32gui.SetForegroundWindow(hwnd) 
dimensions = win32gui.GetWindowRect(hwnd) 

image = ImageGrab.grab(dimensions) 
image.show() 

小さな画面に問題がある場合は、ウィンドウを希望の位置に移動することもできます。 win32gui.MoveWindow(hwnd, 0, 0, 500, 700, True) ウィンドウが誤って上にスクロールするか、もはやキャプチャスペースにできなくなります非アクティブにされた場合、私は、このソリューションは働くだろうとは思わないwin32gui.MoveWindow

+0

を参照してください。 – SpiderStryder

+0

特定のウィンドウにバインドするモジュールがあるかどうかわかりません。おそらく、キャプチャの直前に 'SetForegroundWindow()'を試してみることができます。 – RottenCandy

+0

プログラムは常に1秒に数回キャプチャされますが、プログラムが複数のウィンドウをキャプチャする必要がある場合は特に有効ではありません。 – SpiderStryder

関連する問題