Python で FindWindow 関数を使用する方法
在Python中,可以使用ctypes模块来调用Windows API函数FindWindow。
まず、ctypes モジュールを読み込み、FindWindow 関数の引数タイプと戻り値タイプを定義する必要があります。FindWindow 関数の定義は以下のとおりです。
FindWindow(lpClassName, lpWindowName)
lpClassNameとlpWindowNameにはそれぞれウィンドウのクラス名とウィンドウタイトルを指定し、文字列またはNULLポインタを指定可能
次に、ctypes.windll.user32.FindWindowW関数を使い、FindWindow関数を呼び出します。FindWindowW関数は、ctypesモジュールにおけるFindWindow関数のエイリアスです。
メモ帳ウィンドウを検索する方法を示す FindWindow 関数の使用例を次に示します。
import ctypes
# 定义FindWindow函数的参数类型和返回值类型
FindWindow = ctypes.windll.user32.FindWindowW
FindWindow.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p)
FindWindow.restype = ctypes.c_void_p
# 调用FindWindow函数来查找记事本窗口
hwnd = FindWindow(None, "无标题 - 记事本")
# 检查返回值
if hwnd != 0:
print("找到记事本窗口!")
else:
print("未找到记事本窗口!")
上の例では、FindWindow関数の最初の引数はNoneで、ウィンドウのクラス名を指定しないことを表しています。2番目の引数は、ウィンドウのタイトルで、ウィンドウのタイトルの全体でも一部でもかまいません。
FindWindow 関数は、指定したウィンドウが見つかればそのウィンドウのハンドルを返します。ハンドルとは 0 以上の整数値のことです。指定したウィンドウが見つからない場合は、FindWindow 関数は 0 を返します。
FindWindow関数は最上位ウィンドウしか取得できないため、子ウィンドウを取得する場合はFindWindowEx関数を使用する必要があります。