我正在尝试从Python程序中按下另一个进程中的键。我已经尝试了win32 api,但不知怎的,这段代码什么也没做:
import win32gui
import win32con
import win32api
hwnd = win32gui.FindWindow("notepad", "prueba.txt: Bloc de notas")
if(hwnd != 0):
win32api.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32api.SendMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
while(True):
win32api.SendMessage(
hwnd,
win32con.WM_CHAR,
ord('x'),
0)
else:
print("The window is closed")
当然我想这样做到一个不活跃的窗口。任何解决方案或替代方案?
由于
答案 0 :(得分:0)
目标窗口错误。记事本有多个窗口:它有一个带有子编辑控件的框架窗口。为了使你的代码工作,你应该找到一个子帧(在你的代码中是= hwnd),它是一个编辑控件并向它发送WM_CHAR。
答案 1 :(得分:0)
使用(但添加错误检查)
hwndMain = win32gui.FindWindow("notepad", "prueba.txt: Bloc de notas")
hwndEdit = win32gui.FindWindowEx( hwndMain, 0, "Edit", 0 )
win32api.PostMessage( hwndEdit,win32con.WM_CHAR, ord('x'), 0)
如果你想循环发布消息,你应该添加一些“睡眠”调用: - )