如何使用SendKeys将模拟键盘笔划发送到活动窗口

时间:2011-01-08 23:57:53

标签: python winapi windows-7 sendkeys

我是Python的新手,我正在尝试将关键笔划的组合发送到我在Windows 7下打开的应用程序。虽然当我调用Notepad.exe进行测试时,我的脚本将完美运行,但它不适用于实际的应用程序我正在尝试使用。

到目前为止,这是我的代码:

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新手; - )

PS:我已经通过包含以下代码片段验证了应用程序在活动窗口中运行:

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

2 个答案:

答案 0 :(得分:1)

好的......我重新启动了系统,由于某种原因它现在正在运行。我想知道以前的程序调用中的某个流程实例是否可能在系统上挥之不去。无论如何,我现在能够按预期执行操作,即使我一开始并不真正理解出了什么问题。

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

答案 1 :(得分:1)

我知道这是6年前被问到的,但有人可能会遇到同样的问题,所以这是一个可能的解决方案:

shell.AppActivate('Put_The_Name_Here')

上面的代码将选择已打开但未激活的程序,文件等,这可能是您的问题。

希望这有助于某人!