在Python中,可以使用ctypes
模塊來(lái)調(diào)用Windows API函數(shù)FindWindow
。
首先,需要導(dǎo)入ctypes
模塊,并定義FindWindow
函數(shù)的參數(shù)類(lèi)型和返回值類(lèi)型。FindWindow
函數(shù)的定義如下:
FindWindow(lpClassName, lpWindowName)
其中,lpClassName
和lpWindowName
分別是窗口的類(lèi)名和窗口標(biāo)題。它們可以是字符串或空指針。
接下來(lái),使用ctypes.windll.user32.FindWindowW
函數(shù)來(lái)調(diào)用FindWindow
函數(shù)。FindWindowW
函數(shù)是FindWindow
函數(shù)在ctypes
模塊中的別名。
下面是一個(gè)示例程序,演示如何使用FindWindow
函數(shù)來(lái)查找記事本窗口:
import ctypes
# 定義FindWindow函數(shù)的參數(shù)類(lèi)型和返回值類(lèi)型
FindWindow = ctypes.windll.user32.FindWindowW
FindWindow.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p)
FindWindow.restype = ctypes.c_void_p
# 調(diào)用FindWindow函數(shù)來(lái)查找記事本窗口
hwnd = FindWindow(None, "無(wú)標(biāo)題 - 記事本")
# 檢查返回值
if hwnd != 0:
print("找到記事本窗口!")
else:
print("未找到記事本窗口!")
在上面的示例中,FindWindow
函數(shù)的第一個(gè)參數(shù)為None
,表示不指定窗口的類(lèi)名。第二個(gè)參數(shù)為窗口的標(biāo)題,可以是窗口的完整標(biāo)題,也可以是窗口標(biāo)題的一部分。
如果找到了指定的窗口,FindWindow
函數(shù)將返回窗口的句柄。句柄是一個(gè)非零的整數(shù)值。如果未找到指定的窗口,FindWindow
函數(shù)將返回0。
請(qǐng)注意,FindWindow
函數(shù)只能找到頂層窗口,不能找到子窗口。如果需要查找子窗口,可以使用FindWindowEx
函數(shù)。