如何在 python 脚本中将 SendKeys 发送到 Windows 表单?

How to send SendKeys to Windows form in python script?

我正在 Python 中为我的桌面应用程序编写自动化脚本。 因为我正在将 TAB key/any 键发送到我的 windows 表单。但是我无法在我的 Python 脚本中找到 Windows 表单的句柄。

这是示例代码片段:

__author__ = 'juhis'

import SendKeys
import sys
import os
from Tkinter import *
import ctypes
import win32gui
import pywinauto

pwapp = pywinauto.application.Application()
whandle = pywinauto.findwindows.find_windows(title_re='Form1',class_name='WindowsForms10.Window.8.app.0.2bf8098_r13_ad1')[0]
window1 = pwapp.window_(handle=whandle)
window1.SetFocus()

SendKeys.SendKeys("""{PAUSE 2}""")
SendKeys.SendKeys("""{TAB 2}{PAUSE 2}{ENTER}""")

请帮我解决问题。

-谢谢

代码可以re-written更简单:

import pywinauto

app = pywinauto.application.Application().connect(title_re='Form1')
Form1 = app.Window_(title_re='Form1', class_name='WindowsForms10.Window.8.app.0.2bf8098_r13_ad1')
Form1.SetFocus()
Form1.TypeKeys("{PAUSE 2}")
Form1.TypeKeys("{TAB 2}{PAUSE 2}{ENTER}")

TypeKeys 自动将焦点设置到 Form1 并键入键。 SendKeys 没有设置焦点,因为它不知道 window。这可能就是它不适用于 SendKeys.

的原因

[编辑] 当然你需要 运行 脚本作为管理员。

我已经解决了这个问题。我犯的错误是,我不是 运行 我的脚本管理员。这就是 SendKeys 事件没有发生的原因。

但是当我 运行 我的脚本作为管理员时,SendKeys 事件成功发送到 Windows 表单。

感谢 Vasily 的帮助。