亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python3使用pywinauto如何檢測需要獲取程序元素

 更新時間:2025年02月26日 09:16:33   作者:諸神緘默不語  
這篇文章主要為大家詳細介紹了Python3使用pywinauto如何檢測需要獲取程序元素,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下

以微信為例。其實我是想找個可以用pywinauto操作全流程的例子但是沒找到,所以就先操作定位窗口和查看控件兩部分了。

因為我一開始是想用pywinauto操作關注微信公眾號界面的,發(fā)現(xiàn)顯示不出來……也就是說面對這種情況比較合適的解決方案是找別的工具,呃編程就是這樣的,你要欣然接受新工具才對。

我下次遇到用pywinauto對程序內部進行操作的更具體的工具我再來寫那一部分。

1. 安裝包

pip install pywinauto

2. 檢測需要如何獲取程序元素的過程

1. 定位微信窗口

首先需要看微信這個進程打開了多少個窗口(這個title就是任務管理欄顯示的進程標題,可以用正則表達式。如果是不會在任務管理欄顯示,使用1.5節(jié)的代碼):

代碼:

from pywinauto import findwindows

# 查找所有匹配的窗口
windows = findwindows.find_elements(title='微信', backend='win32', visible_only=False)

# 打印所有匹配的窗口信息
for i, window in enumerate(windows):
    print(f"Window {i+1}:")
    print(f"  Title: {window.name}")
    print(f"  Class Name: {window.class_name}")
    print(f"  Handle: {window.handle}")
    print(f"  Process ID: {window.process_id}")
    print(f"  Rectangle: {window.rectangle}")
    print("-" * 50)

輸出是:

Window 1:
  Title: 微信
  Class Name: TrayNotifyWnd
  Handle: omit
  Process ID: omit
  Rectangle: (L1334, T848, R1667, B1021)
--------------------------------------------------
Window 2:
  Title: 微信
  Class Name: WeChatMainWndForPC
  Handle: omit
  Process ID: omit
  Rectangle: (L0, T-2, R1920, B1020)
--------------------------------------------------
Window 3:
  Title: 微信
  Class Name: Chrome_WidgetWin_0
  Handle: omit
  Process ID: omit
  Rectangle: (L0, T0, R1920, B1020)
--------------------------------------------------

TrayNotifyWnd是一個通常用于托盤通知的窗口,Chrome_WidgetWin_0看起來像是一個基于 Chromium 引擎的窗口(可能是通過 Webview 或者嵌入式瀏覽器來實現(xiàn)的)。所以應該選擇 Window 2,即 Class Name: WeChatMainWndForPC,這是微信的主界面窗口。

(↑這是我問ChatGPT得知的,所以如果你不確定的話,直接也問ChatGPT就vans。直接設置visible_only參數(shù)為True應該也沒問題)

如果進程不在任務管理欄顯示,通過psutil獲取所有進程的標題來找到所需進程

這個當然首先假設你這個進程是有標題的,而且你能猜到這標題是什么意思……

代碼是:

import psutil

for proc in psutil.process_iter():
    try:
        print(proc.name())
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        pass

2. 連接微信窗口并查看其中的可操作項

代碼中的omit就是Window 2的Handle值:

from pywinauto import Application

app=Application(backend="uia").connect(handle=omit)
dlg=app.window(title="微信")
dlg.print_control_identifiers()

backend還可以換成win32

connect()函數(shù)還可以通過標題作為參數(shù),如果用正則表達式的話參數(shù)就是title_re

dlg也可以用top_window()函數(shù)來獲取。還有一個函數(shù)是windows(),這里面第一個也是這個指定窗口。

print_control_identifiers()參數(shù)默認應該是打印所有內容,可以設置depth參數(shù)來設置打印多少層。

需要注意的是如果直接運行這個代碼會導致運行慢而且打印過多,反正我是沒打印完,因為它會把所有聊天記錄什么的全都打印出來。

但是我在關注公眾號界面(也就是我本來想實現(xiàn)自動化操作的界面)打印控件又打印不出東西,打印出來是這樣的:

Control Identifiers:

Dialog - '微信'    (L0, T-2, R1920, B1020)
['Dialog', '微信', '微信Dialog']
child_window(title="微信", control_type="Window")

到此這篇關于Python3使用pywinauto如何檢測需要獲取程序元素的文章就介紹到這了,更多相關Python3 pywinauto獲取程序元素內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python opencv判斷圖像是否為空的實例

    python opencv判斷圖像是否為空的實例

    今天小編就為大家分享一篇python opencv判斷圖像是否為空的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python使用PyCrypto實現(xiàn)AES加密功能示例

    Python使用PyCrypto實現(xiàn)AES加密功能示例

    這篇文章主要介紹了Python使用PyCrypto實現(xiàn)AES加密功能,結合具體實例形式分析了PyCrypto實現(xiàn)AES加密的操作步驟與相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-05-05
  • 詳解Tensorflow不同版本要求與CUDA及CUDNN版本對應關系

    詳解Tensorflow不同版本要求與CUDA及CUDNN版本對應關系

    這篇文章主要介紹了詳解Tensorflow不同版本要求與CUDA及CUDNN版本對應關系,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • python中關于CIFAR10數(shù)據集的使用

    python中關于CIFAR10數(shù)據集的使用

    這篇文章主要介紹了python中關于CIFAR10數(shù)據集的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • pygame學習筆記之設置字體及顯示中文

    pygame學習筆記之設置字體及顯示中文

    游戲界面中文字也是非常常見的元素之一,pygame專門提供了Font模塊來支持文字的顯示,下面這篇文章主要給大家介紹了關于pygame學習筆記之設置字體及顯示中文的相關資料,需要的朋友可以參考下
    2022-07-07
  • 使用Python實現(xiàn)廣告點擊率預測

    使用Python實現(xiàn)廣告點擊率預測

    廣告點擊率是指有多少用戶點擊了您的廣告與有多少用戶查看了您的廣告的比率,本文主要為大家介紹了如何使用Python實現(xiàn)廣告點擊率預測,感興趣的小伙伴可以了解下
    2023-10-10
  • 在python中將list分段并保存為array類型的方法

    在python中將list分段并保存為array類型的方法

    今天小編就為大家分享一篇在python中將list分段并保存為array類型的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python實現(xiàn)程序的單一實例用法分析

    Python實現(xiàn)程序的單一實例用法分析

    這篇文章主要介紹了Python實現(xiàn)程序的單一實例用法,較為詳細的分析了Python窗口的相關操作技巧,需要的朋友可以參考下
    2015-06-06
  • 一篇文章徹底搞懂Python魔法參數(shù)args和kwargs(通俗易懂)

    一篇文章徹底搞懂Python魔法參數(shù)args和kwargs(通俗易懂)

    這篇文章主要介紹了Python中的*args和**kwargs,它們分別是可變位置參數(shù)和可變關鍵字參數(shù),文章通過實際例子展示了如何在函數(shù)、裝飾器等場景中使用*args和**kwargs,幫助讀者理解并掌握這些靈活的參數(shù)處理方式,需要的朋友可以參考下
    2025-02-02
  • 如何使用Python自動控制windows桌面

    如何使用Python自動控制windows桌面

    這篇文章主要介紹了如何使用Python自動控制windows桌面,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07

最新評論