【问题标题】:How to send simulated keyboard strokes to the active window using SendKeys如何使用 SendKeys 将模拟的键盘敲击发送到活动窗口
【发布时间】:2011-06-05 22:22:12
【问题描述】:

我是 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:我已经通过包含此代码 sn-p: 验证了应用程序在活动窗口中运行:

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

【问题讨论】:

  • 您的具体要求是什么?你为什么使用 Python?看起来好像你把自己画到了一个角落里。
  • 嗨,Apala - 感谢您抽出宝贵时间回复。我的要求是我想自动化与这个基于 GUI 的工具的交互,因为我需要向它提供大量数据,这些数据只能通过应用程序的 GUI 表单输入。我使用 Python 是因为它似乎提供了我完成这项任务所需的所有功能。让我知道您是否需要更多信息来推测出问题所在。

标签: python winapi windows-7 sendkeys


【解决方案1】:

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

shell.AppActivate('Put_The_Name_Here')

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

希望这对某人有所帮助!

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2011-01-08
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多