在 Python 做屏幕自动化的过程中,不免须要波及对窗口的操作,实践上都能够用鼠标键盘 + 屏幕辨认(对人的齐全模仿)来实现,但具体做起来切实有点麻烦。如果不思考跨平台的兼容性,那么引入 win32gui 库,能够省很多事。
获取以后窗口
import win32gui
# 获取窗口句柄
hwnd = win32gui.GetForegroundWindow()
# 获取窗口题目
win32gui.GetWindowText(hwnd)
查找窗口
import win32gui
# 依据题目查找窗口
title = '文档'
hwnd = win32gui.FindWindow(None, title)
设置以后窗口
import win32gui
# 依据句柄
hwnd = 5378992 #句柄应该是其余办法获取到的
win32gui.SetForegroundWindow(hwnd)
残缺示例
import time
import win32gui
def get_current_window():
return win32gui.GetForegroundWindow()
def set_current_window(hwnd):
win32gui.SetForegroundWindow(hwnd)
def get_window_title(hwnd):
return win32gui.GetWindowText(hwnd)
def get_current_window_title():
return get_window_title(get_current_window())
def find_window_by_title(title):
try:
return win32gui.FindWindow(None, title)
except Exception as ex:
print('error calling win32gui.FindWindow' + str(ex))
return -1
if __name__ == "__main__":
# 获取以后窗口句柄 (是一个整数)
print(get_current_window())
# 获取以后窗口题目
print(get_current_window_title())
# 给定一个题目, 查找这个窗口, 如果找到就放到最前
hwnd = find_window_by_title('文档')
set_current_window(hwnd)
time.sleep(1)
# 打印刚刚切换到最前的窗口题目
print(get_current_window_title())