如何在python脚本中将SendKeys发送到Windows表单? [英] How to send SendKeys to Windows form in python script?

查看:74
本文介绍了如何在python脚本中将SendKeys发送到Windows表单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在用 Python 为我的桌面应用程序编写自动化脚本.因为我正在向我的 Windows 窗体发送 TAB 键/任意键.但是我无法在我的 Python 脚本中找到那个 Windows 表单的句柄.

I'm doing automation scripting in Python for my desktop application. In that I'm sending TAB key/any key to my windows form. But I'm not able to find handle of that Windows form in my Python script.

这是示例代码片段:

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

请帮我找出问题所在.

-谢谢

推荐答案

代码可以更简单地重写:

The code can be re-written simpler:

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 不设置焦点,因为它不知道窗口.这可能就是它不适用于 SendKeys 的原因.

TypeKeys automatically sets a focus to the Form1 and types the keys. SendKeys doesn't set a focus because it's not aware about the window. That's probably why it doesn't work with SendKeys.

当然,您需要以管理员身份运行脚本.

Of course you need to run the script as Administrator.

这篇关于如何在python脚本中将SendKeys发送到Windows表单?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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