您可以使用ctypes库。在
考虑以下代码:import ctypes
EnumWindows = ctypes.windll.user32.EnumWindows
EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int))
GetWindowText = ctypes.windll.user32.GetWindowTextW
GetWindowTextLength = ctypes.windll.user32.GetWindowTextLengthW
SendMessage = ctypes.windll.user32.SendMessageW
IsWindowVisible = ctypes.windll.user32.IsWindowVisible
def foreach_window(hwnd, lParam):
if IsWindowVisible(hwnd):
length = GetWindowTextLength(hwnd)
buff = ctypes.create_unicode_buffer(length + 1)
GetWindowText(hwnd, buff, length + 1)
if(buff.value == "Choose File to Upload"): #This is the window label
SendMessage(hwnd, 0x0100, 0x09, 0x00000001 )
return True
EnumWindows(EnumWindowsProc(foreach_window), 0)
你在每一个打开的窗口上循环,然后向你选择的窗口发送一个键笔划。在
SendMessage函数得到4个参数:window hendler(hwnd)、发送的物理键-WM_KEYDOWN(0x0100)、tab(0x09)的virtual-key code和第4个参数中的repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag。在
你也可以发送key up,key down,chars,returns等等。。。
使用文档获取帮助。在
祝你好运!在