标签: pywinauto

pywinauto 32位用户警告

我试图使用pywinauto使TomCat自动化,以在每次更新类文件时启动和停止。但是,当我尝试运行它时,会出现以下警告:

UserWarning: 32-bit application should be automated using 32-bit Python (you use 64-bit Python)

我很确定我具有所需程序的64位版本(甚至重新安装以确保)。有什么方法可以跳过此警告,以便程序可以执行?还是不可能?(Tomcat甚至安装在程序文件中,而不是安装在程序文件中(x86)。)如果是这种情况,我必须使用32位版本的python来执行此操作,那么如何为32位和64位安装pywinauto位版本的python?我尝试使用32位版本的python运行它,但是它说即使我运行pip install pywinauto,也无法识别“ pywinauto”模块。

编辑:尽管警告消息,该程序“工作”。它只是告诉我应该使用32位python。即使tomcat的代码无法正常工作(我也不知道为什么,甚至使用SWAPY来确保代码正确,但仍然无法正常工作)。这是一些未按预期执行的代码(即未发生任何事情)

def tomCatAuto():
    app = Application().Connect(title=u'Apache Tomcat 8.0 Tomcat8 Properties', class_name='#32770')
    window = app.Dialog
    button = window.OK
    button.Click()
Run Code Online (Sandbox Code Playgroud)

python pywinauto

3
推荐指数
1
解决办法
3419
查看次数

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

我正在为我的桌面应用程序使用 Python 编写自动化脚本。我正在将 TAB 键/任意键发送到我的 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}""")
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。

-谢谢

ui-automation pywinauto winforms python-2.7

3
推荐指数
1
解决办法
1万
查看次数

pywinauto中的pywinauto.findwindows.WindowNotFoundError

我是pywinauto的新手,刚开始学习.我在我的本地32位Windows 7操作系统中安装了pywinauto和pip.所以,我有这个示例代码在chrome浏览器中打开一个URL.

from pywinauto import application
app=application.Application()
app.start(r'C:\Program Files\Google\Chrome\Application\chrome.exe')
app.window_(title='New Tab')
app.window_().TypeKeys('{F6}')
app.window_().TypeKeys('{ESC}')
app.window_().TypeKeys('www.facebook.com')
Run Code Online (Sandbox Code Playgroud)

在运行它时,它抛出错误:

Traceback (most recent call last):
File "pywinauto_nil.py", line 6, in <module>
app.window_().TypeKeys('{F6}')
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 252, in    
__getattr__
    ctrls = _resolve_control(self.criteria)
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 758, in _resolve_control
    raise e.original_exception
pywinauto.findwindows.WindowNotFoundError
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,但找不到任何有用的解决方案.

我哪里错了?

python pywinauto

3
推荐指数
1
解决办法
1611
查看次数

PyWinAuto 打开应用程序,但不返回任何窗口对话框

我正在尝试编写一个脚本来自动设置新的开发机器。我一直在使用 PyWinAuto 尝试自动安装各种程序,这些程序主要使用 WinForm (或类似的)GUI 窗口。

PyWinAuto 正确打开应用程序,但不返回任何窗口。我已经安装了 SWAPY,它向我显示了我期望看到的控件,但它们在代码中不起作用。我尝试分别将 PyWinAuto 0.6.3 和 0.5.4 与 Python 2.7.13 和 2.7.12 一起使用(我在 Windows 7 32 位机器上),但没有任何效果。

以下是我收到的错误示例:

    import pywinauto
    from pywinauto.application import Application

    app = Application()
    app.Start("C:\setup.exe")
    appSetup = app.Setup
    appSetup.Wait('ready')
    ...
    ...
    Error: pywinauto.timings.TimeoutError: timed out
Run Code Online (Sandbox Code Playgroud)

或者

    app = Application()
    app.Start("C:\setup.exe")
    appSetup = app.Setup
    appSetup.ClickInput()
    ...
    ...
    Error: pywinauto.findbestmatch.MatchError: Could not find 'Setup' in '[]'
Run Code Online (Sandbox Code Playgroud)

以下是我遇到错误的一个安装示例: Boost Install Window with SWAPY 说明

非常感谢您的帮助。谢谢你!

python pywinauto python-2.7

2
推荐指数
1
解决办法
4712
查看次数

Pywinauto type_keys() 省略字符串中的“%”

当尝试使用 Pywinauto 0.6.5 将字符串输入'customer asked for 30% discount'表单时type_keys(),它发送的输出'customer asked for 30 discount"省略了'%'

尝试转义字符:

  1. control.type_keys('customer asked for 30%% discount',with_spaces=True)
  2. control.type_keys('customer asked for 30\% discount',with_spaces=True)

但它仍然省略了'%'

当在控制台字符串输出中正确打印数据时。所以这不是Python 3.7的问题。

python pywinauto python-3.x

2
推荐指数
1
解决办法
2024
查看次数

如何使用 pywinauto 在文本框中设置值?

我是 pywinauto 的新手,我不知道如何使用控件标识符。

样本图片

文本框的控件标识符

我该如何设置No. of loops:为99999?

python pywin32 pywin pywinauto python-2.7

1
推荐指数
1
解决办法
2万
查看次数

PyWinAuto type_keys() 不在单词之间留出空格

我正在尝试使用 pywinauto 在 Python 中制作语音输入程序。首先,我使用 SpeechRecognition 模块识别语音,并将识别的语音转换为字符串,然后使用该type_keys()方法在记事本中键入字符串。

这是代码:

from pywinauto import application
import time
import speech_recognition as sr

app = application.Application()
app.start("Notepad.exe")

def type_keys_in_notepad():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Listening...")
        r.pause_threshold = 1
        r.adjust_for_ambient_noise(source)
        audio = r.listen(source)


    try:
        print("Recognizing...")
        content = r.recognize_google(audio, language="en-in")
        print(content)
        content_str = str(content)
        app.Notepad.edit.type_keys(content_str)

    except Exception as e:
        print(e)

type_keys_in_notepad()
Run Code Online (Sandbox Code Playgroud)

python pywinauto

1
推荐指数
1
解决办法
2677
查看次数

Swapy不能用于访问基于swing的java应用程序的swing属性.如何访问java应用程序的swing属性

我使用swapy(使用pywinauto python包的桌面自动化工具)来自动化桌面UI活动,但是swapy不能识别基于swing的java应用程序的属性,但它可以识别其他应用程序的属性,如记事本windows媒体播放器等. .

任何人都可以请这个问题的原因

我可以使用swing explorer来实现这个基于swing的应用程序,我没有代码,只有应用程序

如果我无法使用它,请给我一个方法/解决方案来访问基于swing的java应用程序的属性.

提前致谢..

python swing ui-automation pywinauto

0
推荐指数
1
解决办法
1016
查看次数

使用pywinauto控制桌面鼠标

我正在尝试使用 pywinauto 控制桌面上的鼠标事件。具体来说,我希望通过向其窗口发送鼠标单击来激活不同的应用程序,并且理想情况下能够移动具有众所周知的标题栏坐标的窗口。

我尝试过对“explorer”和“dwm”进行 app.connect_() 调用,但除了具有“Progman”类的 DialogWrapper 之外,我没有任何乐趣。使用 SWAPY 进行搜索也得到了同样糟糕的结果。

我不是 Windows 程序员,所以我希望我在这里遗漏了一些相当明显的东西。任何提示都会受到欢迎。

谢谢

mouse desktop pywinauto

0
推荐指数
1
解决办法
5833
查看次数

德尔福:模拟按键以实现自动化

我想更改外部应用程序的编辑控件的文本.该应用程序是用Delphi编写的.它有几种形式.我开始用Python库pywinauto+ sendkeys测试第一种形式TLoginForm.它完美地运作.这是伪代码:

helper = pywinauto.application.Application()
hwnd = pywinauto.findwindows.find_windows(class_name='TLoginForm')[0]
window = helper.window_(handle=hwnd)
ctrl = window[2]   # the second control is the edit control I want to access
ctrl.ClickInput()  # focus the control
ctrl.SetEditText('Hello world')  # text can be changed expectedly
Run Code Online (Sandbox Code Playgroud)

作为第二步,我想为自动化工具制作UI.但由于缺乏Python UI知识并考虑到在Python中分发二进制文件的复杂性,我想做Delphi.但奇怪的是我无法使用Windows apis在Delphi中读/写编辑控件.以下是一些尝试:

SetForegroundWindow(EditControlHandle); // Works, the application will be brought to front, the edit control will be focused

// Attempt 1: Nothing happens
SetFocus(AnotherEditControlHandle);

// Attempt 2: Nothing happens
SetWindowText(EditControlHandle, 'Hello world');

// Attempt 3: …
Run Code Online (Sandbox Code Playgroud)

python delphi keyboard ui-automation pywinauto

0
推荐指数
1
解决办法
2624
查看次数

Pywinauto-从字段中选择所有数据

是否有任何函数可用于从字段中选择所有数据(字符串)?

例如,当您要删除字段中的所有数据,然后手动选择它并按Delete键。

我目前正在使用DoubleClick()和Backspace键,但是如果字符串包含空格(例如“ This is a string”),它将仅选择第一个单词。

pywinauto

0
推荐指数
1
解决办法
1000
查看次数

SetForegroundWindow() 在服务器的 RDP 窗口最小化或锁定时不运行

我正在从事一个自动化项目,该项目要求我搜索 acrobat 进程,然后将其置于前台。我使用的是 Windows Server 2012 R2 Standard 和 Python。我在进程列表中搜索该特定 PDF 文件,然后尝试将该窗口置于前台。

当服务器打开并处于活动状态时,我的代码运行良好。一旦它被最小化或锁定,它就不起作用。具体来说,SetForegroundWindow() 行不起作用并抛出错误“(0, 'SetForegroundWindow', 'No error message is available')”。

接下来,我浏览了此处列出的许多示例,有人建议在该行之前使用“Alt”选项卡。试过了,没用。然后我根据另一个用户使用 ShowWindow() 但又出现了同样的错误。现在,我完全被困住了。

我已经查看了许多与该问题相关的线程,例如: 1. SetForegroundWindow 不适用于最小化进程 2.最小化时前移窗口 3.最小化时前移窗口

我试过 MainWindowHandle 可以修复错误,但我无法在 python 中实现它。

另外,我安装了 pywinauto 并使用了 pywinauto 的 findwindows 和 SetForegroundWindow 功能。当服务器处于活动状态时它运行良好,但是一旦我们最小化或锁定服务器,它就不起作用并给出相同的错误“(0, 'SetForegroundWindow', 'No error message is available')”。

现在,我完全没有选择。任何想法/建议?

这是片段:

import win32gui,win32con
import win32com.client
import time

time.sleep(3)
def windowEnumerationHandler(hwnd, top_windows):
    if win32gui.IsWindowVisible(hwnd) and win32gui.GetWindowText(hwnd)!='':
        top_windows.append((hwnd, win32gui.GetWindowText(hwnd)))

results = []
top_windows = []
file_name_of_pdf = "ARW_AR_2016.pdf"
win32gui.EnumWindows(windowEnumerationHandler, …
Run Code Online (Sandbox Code Playgroud)

python window win32gui pywinauto setforegroundwindow

0
推荐指数
1
解决办法
893
查看次数