窗口 ID 和窗口句柄是两个不同的概念,窗口 ID 是一个数字,用于标识窗口,而窗口句柄是一个指向窗口的指针。在 Windows 系统中,每个窗口都有一个唯一的窗口句柄。 如果已知窗口 ID,可以通过以下方法获取窗口句柄:
- 使用
FindWindow
函数 使用win32gui
模块的FindWindow
函数可以根据窗口的类名和窗口标题查找窗口句柄。例如:
import win32gui window_id = "12345" # 窗口 ID class_name = "Notepad" # 窗口类名 window_title = "Untitled - Notepad" # 窗口标题 window_handle = win32gui.FindWindow(class_name, window_title)
需要注意的是,窗口 ID 必须是字符串类型,窗口类名和窗口标题可以是字符串或 None。
2. 使用 FindWindowEx
函数 使用 win32gui
模块的 FindWindowEx
函数可以在指定窗口的所有子窗口中查找窗口句柄。可以根据窗口 ID 和子窗口类名来查找窗口句柄。例如:
import win32gui parent_id = 0x012345 # 父窗口句柄 child_id = 0x67890 # 子窗口 ID child_class_name = "Edit" # 子窗口类名 child_handle = win32gui.FindWindowEx(parent_id, 0, child_class_name, str(child_id))
需要注意的是,子窗口 ID 必须是字符串类型。 以上是通过窗口 ID 获取窗口句柄的方法,需要注意的是,窗口 ID 只在某些情况下可用,例如在使用 SendMessageTimeout
函数发送消息时,可以使用窗口 ID 代替窗口句柄。
评论