如何使用SendKeys向活动窗口发送模拟键盘输入

3 投票
1 回答
28048 浏览
提问于 2025-04-16 09:38

我刚开始学习Python,想在Windows 7上给一个我打开的应用程序发送一系列按键组合。我的脚本在测试记事本时运行得很好,但在我想用的实际应用程序上却不行。

这是我目前的代码:

import win32com.client
import time
import SendKeys
import os
from ctypes import *

shell = win32com.client.Dispatch("WScript.Shell")

os.startfile("C:\...exe")

time.sleep( 5 )

shell.SendKeys('%{F4}')     # 'Alt+F4' to close the application again.

不知道为什么,这个应用程序对我的脚本没有反应,无法关闭。当我在键盘上按'Alt + F4'时,它能正常关闭。你们觉得可能是什么原因呢?

任何帮助都很欢迎!请记住,我还是Python的新手;-)

另外,我已经通过加入这段代码确认了应用程序是在活动窗口中运行的:

import win32ui
wnd = win32ui.GetForegroundWindow()
print wnd.GetWindowText()

1 个回答

2

好的……我重启了一下系统,不知道为什么现在它可以正常工作了。我在想之前运行程序时,可能有一些进程还留在系统里没有结束。无论如何,现在我可以按预期进行操作了,虽然我还是不太明白最开始到底出了什么问题。

感谢所有花时间回复的人。

撰写回答