将密钥发送到Python中的非活动窗口 [英] Send keys to a inactive window in Python

查看:123
本文介绍了将密钥发送到Python中的非活动窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Python程序的另一个进程中按一个键.我已经尝试过win32 api,但是不知何故,这段代码什么也没做:

I'm trying to press a key in another process from a Python program. I've tried the win32 api, but somehow this code does nothing:

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")

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

Of course I want to do this to an inactive window. Any solution or alternatives?

谢谢

推荐答案

使用(但添加错误检查)

Use (but add error checking)

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)

如果您想循环发布消息,请添加一些睡眠"呼叫:-)

you should add some "sleep" calls if you want to loop posting message :-)

这篇关于将密钥发送到Python中的非活动窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆