python

Pythonでウィンドウを操作する

windowsでアプリケーションを起動し、ウィンドウを移動、サイズ変更する方法について紹介します。

使用するライブラリ

  1. subprocess
  2. ctypes

この2つのライブラリを使用します。subprocessは他のプログラムを起動するために使用します。次に、ctypesはWindowsの共有ライブラリ(windll)を呼び出すために使用します。ctypesを使用することで、subprocessを使って起動したプログラムのウィンドウを操作します。

ライブラリのより詳しい説明

subprocess.Popen

プログラムを起動し、起動したプログラムのプロセスIDを返します。今回プロセスIDは使いません。

windll.user32.GetForegroundWindow

最前面で動いているウィンドウのハンドルを取得します。ハンドルとはウィンドウを特定し、操作するために使うIDのようなものです。

windll.user32.GetWindowRect

ウィンドウの外側のサイズを取得するために使用します。

windll.user32.MoveWindow

ウィンドウを動かしたり、サイズを変えるのに使います。

サンプル

最後に、google chromeを横並びに開くサンプルを紹介します。画面の解像度は環境に応じて修正が必要です。また、他のウィンドウをクリックしたりするとうまく動きません。

#coding: utf-8
from ctypes import *
import subprocess
from ctypes.wintypes import *
import time

google=0
google2=0

child_process = subprocess.Popen(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe')
time.sleep(5)
google = windll.user32.GetForegroundWindow()

child_process = subprocess.Popen(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe')
time.sleep(5)
google2 = windll.user32.GetForegroundWindow()

windll.user32.MoveWindow(google, -7, 0, int(1920/3)+7, int(1080), 0)
windll.user32.MoveWindow(google2, int(1920/3), 0, int(1920/3), int(1080), 0)