<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          pywinauto,一款Win自動化利器!

          共 6995字,需瀏覽 14分鐘

           ·

          2024-05-31 08:20

          ??我的小冊 45章教程:(小白零基礎用Python量化股票分析小冊) ,原價299,限時特價2杯咖啡,滿100人漲10元。

          作者:冰冷的希望 

          https://blog.csdn.net/qq_39147299/article/details/132409817






          1.安裝






          pywinauto是一個用于自動化Python模塊,適合Windows系統(tǒng)的軟件(GUI),可以通過Pywinauto遍歷窗口(對話框)和窗口里的控件,也可以控制鼠標和鍵盤輸入,所以它能做的事情比之前介紹的pysimplegui更多



          一般使用pip安裝就行了

          pip install pywinauto


          官網文檔:https://pywinauto.readthedocs.io/en/latest/







          2.Application






          我們要控制軟件的第一件事就是啟動一個Windows軟件,每一個軟件(進程)都是一個Application對象


          實例化Application對象的時候可以傳入一個backend參數(shù),可選值為win32(默認)和uia 


          • win32對應的框架:MFC、VB6、VCL、簡單的 WinForms 控件和大多數(shù)舊的遺留應用程序

          • uia對應的框架:WinForms、WPF、商店應用程序、Qt5、瀏覽器


          如果無法知道要測試的軟件是屬于哪種框架,可以使用 Inspect(對應uia) 和 Spy++(對應win32)看看,你看哪個顯示得更全就選哪個。Inspect和Spy++需要自己安裝一下


          下面是Application對象的主要方法

          舉例,啟動一個微信應用,通過進程號連接,進程號就是在任務管理器里詳細信息看到的PID








          3.WindowSpecification






          我們要獲取窗口,一個窗口都是一個WindowSpecification對象,可以通過Application對象的window()方法獲取,參數(shù)可以是title、classname或者best_match等,這都可以在inspect.exe上看到,不過需要注意的是inspect看到的Name其實對應的是window()的title參數(shù)


          WindowSpecification對象常用的方法如下


          舉個栗子







          4.元素控件






          一個窗口里一般都會有各種各樣的元素,比如說按鈕 (Button)、編輯欄(Edit)、樹狀視圖(Tree View)、復選框(CheckBox)、對話框(Dialog)、工具欄(Toolbar)、狀態(tài)欄(StatusBar)、列表框ListBox)、窗格(Pane)、菜單(Menu)、菜單欄MenuItem)、靜態(tài)內容(Static)、工具提示(ToolTips)、列表控件(ListView)、單選框RadioButton)、組合框(ComboBox)、選項卡控件(TabControl)、組框 (GroupBox)、彈出菜單(PopupMenu)、(Header)等


          因為控件類型太多了不能一個一個學習,但是它們都有一個  element_info的屬性,訪問之后會返回一個繼承于ElementInfo的對象(UIAElementInfo或HwndElementInfo),比較重要的屬性或方法如下

          這些元素除了有element_info可以獲取一些元素的主要信息,它們還都被包裝成一個Wrapper,所以也可以學一下BaseWrapper的常用方法和屬性。其實BaseWrapper的方法基本上都是對ElementInfo進一步包裝,我只列出部分方法,如下表

          說明一下,每個控件元素都有對應的Wrapper,所以上面的方法也不一定都用,需要根據實際情況進行測試區(qū)分。另外,比較有用的click_input()type_keys()這兩個方法分別用于操作鼠標和鍵盤(輸入),下面我會單獨拿出來說一下







          鼠標操作






          鼠標點擊肯定離不開點擊的位置,桌面就是一個坐標,左上角為坐標原點,往右是X軸正向,往下是Y軸正向。pywinauto提供了一個mouse模塊用于鼠標操作,最核心的方法是_perform_click_input(),不過它是一個私有方法,我們調用的是基于它的封裝方法,如下表

          參數(shù)說明:

          • 參數(shù)button的默認值都是“l(fā)eft”,即鼠標左鍵,可選值有l(wèi)eft、right、middle、move、wheel、x

          • 參數(shù)coords的默認值都是元組(0, 0),元組里的兩個整數(shù)分別是X、Y軸的值

          • 參數(shù)wheel_dist表示滾動的距離,大于0是向上滾動,小于0是向下滑動


          舉個栗子







          鍵盤操作






          鍵盤操作主要是按下鍵盤上的按鍵,相關方法在keyboard模塊,最最主要的是send_keys()方法,第一個參數(shù)keys就是我們需要按下的按鍵,其他參數(shù)比如說with_spaces、with_tabs、with_newlines、turn_off_numlock、set_foreground、vk_packet,一看就知道作用,而且都是布爾值,此處不進行舉例


          pywinauto支持的完整的按鍵可以在官方文檔查看,https://pywinauto.readthedocs.io/en/latest/code/pywinauto.keyboard.html


          下面我列舉出的是一些比較常用的按鍵

          說明:

          • 使用按鍵時需要搭配大括號,比如說按下回車鍵是  '{ENTER}' (是字符串)

          • 在Windows平臺默認是發(fā)送虛擬按鍵的,以VK_開頭的按鍵,都是指虛擬按鈕,如果不想使用虛擬按鈕可以把VK_前綴去掉,把send_keys()的vk_packet參數(shù)改為False即可


          單個按鍵按下抬起還不夠,往往需要組合鍵,這時候就需要修飾符了,在大括號里可以使用downup控制按鍵什么時候按下和抬起,如果后面加上數(shù)字,表示按下多少次

          當然,很多時候使用downup修飾感覺不夠簡潔,所以pywinauto還提供了簡化寫法,使用+代替{VK_SHIFT},使用^代替{VK_CONTROL},使用%代替{VK_MENU}

          如果不想按下按鈕,純屬想要輸入純字符串,那就需要取消轉義了,注意修飾符和按鈕的寫法是不一樣的


          最后推薦一下我們團隊寫的量化小冊的內容,45篇內容!從Python安裝,入門,數(shù)據分析,爬取股票基金的歷史+實時數(shù)據,以及如何寫一個簡單量化策略,策略回測,如何看資金曲線統(tǒng)統(tǒng)都有介紹!非常超值!

          歡迎訂閱:原價299 早鳥價2杯咖啡錢,即可永久閱讀。滿400人又要漲價了,現(xiàn)在的價格非常非常低,只要2杯奶茶,就可以終身訂閱+課程源碼,還有永久陪伴群。48小時無理由退款,放心食用!


          往期推薦

          量化: 如何用Python爬取創(chuàng)業(yè)板歷史+實時股票數(shù)據!實戰(zhàn)股票分析篇利用Pandas 9招挖掘五糧液股價實戰(zhàn)股票數(shù)據分析篇 Pandas滾動操作 |量化股票第一步,用Python畫股票K線,雙均線圖,可視化你的股票數(shù)據!如何用Python爬取全部800多只ETF基金數(shù)據!如何用Python寫一個雙均線策略 |如何用Python開發(fā)一個多策略機器人!上篇!Python量化系列-用布林策略買五糧液能賺多少錢?只要4秒鐘!用Python 獲取上證指數(shù)34年的歷史日線數(shù)據!


          入門: 最全的零基礎學Python的問題  | 零基礎學了8個月的Python  | 實戰(zhàn)項目 |學Python就是這條捷徑


          干貨:爬取豆瓣短評,電影《后來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個海量小姐姐素描圖 |碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影


          趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!

          AI: 會做詩的機器人 | 給圖片上色 | 預測收入 | 碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影

          小工具: Pdf轉Word,輕松搞定表格和水印! | 一鍵把html網頁保存為pdf!|  再見PDF提取收費! | 用90行代碼打造最強PDF轉換器,word、PPT、excel、markdown、html一鍵轉換 | 制作一款釘釘?shù)蛢r機票提示器! |60行代碼做了一個語音壁紙切換器天天看小姐姐!

          瀏覽 316
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲高清Aⅴ| 欧美精品黄片 | 欧美女操逼视频 | 天天射日日 | 五月天丁香色婷婷 |