将密钥发送到Python中的非活动窗口[重复]


问题内容

这个问题已经在这里有了答案

使用python将一些键发送到非活动窗口 (2个答案)

去年关闭。

我正在尝试在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")

我当然想对不活动的窗口执行此操作。任何解决方案或替代方案?

谢谢


问题答案:

使用(但添加错误检查)

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)

如果您想循环发布消息,则应该添加一些“睡眠”呼叫:-)