基于 PyGetWindow 獲取窗口信息和控制窗口

PyGetWindow 是基于Python的一款簡單、跨平臺的模塊,用來獲取窗口信息和控制窗口。可以實現的功能有:
獲取當前系統中所有打開窗口的列表。
根據窗口標題、窗口句柄等屬性獲取特定的窗口對象。
激活、最小化、最大化和關閉窗口。
獲取和設置窗口的位置、大小和幾何屬性。
判斷窗口是否最小化或可見。
等待窗口準備好,以及等待窗口存在。
移動和調整窗口的位置和大小。

安裝

pip install pygetwindow

獲取當前所有窗口

import pygetwindow as gw# 獲取當前所有窗口
windows = gw.getAllWindows()
for window in windows:print(window)

獲取指定標題的窗口、位置、大小

import pygetwindow as gw# 獲取指定標題的窗口
title = "Calculator"
window = gw.getWindowsWithTitle(title)[0]
print(window)
# <Win32Window left="1065", top="412", width="336", height="541", title="Calculator">
print(window.left, window.top, window.width, window.height ,window.title)
# 1065 412 336 541 Calculator

移動和調整窗口大小

import pygetwindow as gw# 移動和調整窗口大小
title = "Calculator"
window = gw.getWindowsWithTitle(title)[0]
window.moveTo(0, 0)
window.resizeTo(800, 600)

最小化、最大化和還原窗口

import pygetwindow as gw# 最小化、最大化和還原窗口
title = "Edge"
window = gw.getWindowsWithTitle(title)[0]
# 最小化窗口
window.minimize()
# 最大化窗口
window.maximize()
# 還原窗口
window.restore()

模擬鍵盤輸入和鼠標點擊

這里用到了pyautogui。

pip install pyautogui
import pygetwindow as gw
import time
import pyautogui  # 導入 pyautogui 庫# 模擬鍵盤輸入和鼠標點擊
title = "Calculator"
window = gw.getWindowsWithTitle(title)[0]
window.activate() # 激活窗口,使得鍵盤輸入和鼠標操作生效# 使用 pyautogui 模擬鍵盤輸入
pyautogui.typewrite("123+456=")
pyautogui.click(x=50, y=50, button='left') 

1

相關鏈接

https://github.com/asweigart/PyGetWindow

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/79062.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79062.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79062.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32硬件IIC+DMA驅動OLED顯示——釋放CPU資源,提升實時性

目錄 前言 一、軟件IIC與硬件IIC 1、軟件IIC 2、硬件IIC 二、STM32CubeMX配置KEIL配置 三、OLED驅動示例 1、0.96寸OLED 2、OLED驅動程序 3、運用示例 4、效果展示 總結 前言 0.96寸OLED屏是一個很常見的顯示模塊&#xff0c;其驅動方式在用采IIC通訊時&#xff0c;常用軟件IIC…

【ozone工具使用指南】基于keil使用ozone創建一個調試工程

前言&#xff1a;一般調試嵌入式工程代碼最常見的方式是基于keil上面DEBUG&#xff0c;使用這種最古老的方式雖然也很方便&#xff0c;但是一些功能并沒有辦法體現&#xff0c;比如變量的變化曲線或者波形并無法直觀的顯示出來&#xff0c;ozone這個工具就結合了上面提到的比ke…

【ROS2】行為樹 BehaviorTree(五):詳細學習端口和黑板

1、構造函數 之前使用的行為樹創建節點時,默認的構造函數形如: CalculateGoal(const std::string& name, const NodeConfig& config):SyncActionNode(name,config) {

架構思維:緩存層場景實戰_讀緩存(下)

文章目錄 Pre業務場景緩存存儲數據的時機與常見問題解決方案1. 緩存讀取與存儲邏輯2. 高并發下的緩存問題及解決方案3. 緩存預熱&#xff08;減少冷啟動問題&#xff09; 緩存更新策略&#xff08;雙寫問題&#xff09;1. 先更新緩存&#xff0c;再更新數據庫&#xff08;不推薦…

Odrive源碼分析(七) 逆park變換

Odrive源碼分析(七) Park逆變換 Odrive中FOC部分代碼分散在各個對象中&#xff0c;并不是集中在某一塊&#xff0c;所以試圖在某一段代碼就能得到FOC全貌是不現實的。 先看下FOC的整個流程&#xff1a; 控制變量到三相電流輸出的關鍵部分分為Park逆變換和SVPWM。本文主要討論…

Flink Hive Catalog最佳實踐

Flink Hive Catalog 最佳實踐 一、配置與初始化 依賴管理 Hive Connector 版本對齊&#xff1a;需確保 flink-sql-connector-hive 版本與 Hive 版本嚴格匹配&#xff08;如 Hive 3.1.3 對應 flink-sql-connector-hive-3.1.3_2.12&#xff09;&#xff0c;同時添加 Hadoop 遮蔽…

通過人類和機器人演示進行聯合逆向和正向動力學的機器人訓練

25年3月來自哥倫比亞大學的論文“Train Robots in a JIF: Joint Inverse and Forward Dynamics with Human and Robot Demonstrations”。 在大型機器人演示數據集上進行預訓練是學習各種操作技能的強大技術&#xff0c;但通常受到收集以機器人為中心數據的高成本和復雜性限制…

金融簡單介紹及金融詐騙防范

在當今社會&#xff0c;金融學如同一股無形卻強大的力量&#xff0c;深刻影響著我們生活的方方面面。無論是個人的日常收支、投資理財&#xff0c;還是國家的宏觀經濟調控&#xff0c;都與金融學緊密相連。? 一、金融學的概念? 金融學&#xff0c;簡單來說&#xff0c;是研…

JavaScript `new Date()` 方法移動端 `兼容 ios`,ios環境new Date()返回NaN

在 iOS 環境下&#xff0c;new Date() 方法會返回 NaN&#xff0c;這通常是由于時間字符串的格式問題。iOS 的 Date 構造函數對時間字符串的格式要求比其他平臺更嚴格。 原因&#xff1a;ios端不兼容“-”為連接符的時間。 解決辦法&#xff1a; 替換時間格式 IOS 不支持某…

【網絡編程】網絡編程基礎和Socket套接字

目錄 一. 網絡編程的概念 二. 網絡編程基礎知識 1&#xff09;網卡 2&#xff09;接收端和發送端 3&#xff09;客戶端和服務器 4&#xff09;請求和響應 5&#xff09;客戶端和服務器的交互模式 三. Socket 套接字模型 一. 網絡編程的概念 網絡編程 是通過編程實現不同…

盛水最多的容器問題詳解:雙指針法與暴力法的對比與實現

文章目錄 問題描述方法探討方法一&#xff1a;暴力法&#xff08;Brute Force&#xff09;思路代碼實現復雜度分析 方法二&#xff1a;雙指針法&#xff08;Two Pointers&#xff09;思路正確性證明代碼實現復雜度分析 方法對比總結 摘要 盛水最多的容器&#xff08;Container …

圖論-BFS搜索圖/樹-最短路徑問題的解決

續上篇~圖論--DFS搜索圖/樹-CSDN博客 先看第一次學習的博客&#xff01;&#xff01;&#x1f447;&#x1f447;&#x1f447;&#x1f447; &#x1f449; 有一些問題是廣搜 和 深搜都可以解決的&#xff0c;例如島嶼問題&#xff0c;這里我們記dfs的寫法就好啦&#xff0c;…

C++進階——C++11_智能指針

目錄 1、問題引入 2、RAII和智能指針 3、C標準庫的智能指針 3.1 auto_ptr (不好) 3.2 unique_ptr 3.3 shared_ptr (重點) 3.4 weak_ptr (重點) 4、shared_ptr的循環引用問題(重點) 5、shared_ptr的線程安全問題 6、C11智能指針和boost的關系 7、內存泄漏 7.1 什么是…

數據庫的基本原則

數據庫的核心原則 原子性與持久性&#xff1a;原子性&#xff08;Atomicity&#xff09;確保一個事務中的所有操作要么全部完成&#xff0c;要么完全不執行&#xff0c;不會出現部分完成的情況。持久性&#xff08;Durability&#xff09;則保證一旦事務提交成功&#xff0c;即…

Java設計模式實戰:裝飾模式在星巴克咖啡系統中的應用

一、裝飾模式簡介 裝飾模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許向一個現有的對象添加新的功能&#xff0c;同時又不改變其結構。這種模式創建了一個裝飾類&#xff0c;用來包裝原有的類&#xff0c;并在保持類方法簽名完整性的前…

使用MPI-IO并行讀寫HDF5文件

使用MPI-IO并行讀寫HDF5文件 HDF5支持通過MPI-IO進行并行讀寫&#xff0c;這對于大規模科學計算應用非常重要。下面我將提供C和Fortran的示例程序&#xff0c;展示如何使用MPI-IO并行讀寫HDF5文件。 準備工作 在使用MPI-IO的HDF5之前&#xff0c;需要確保: HDF5庫編譯時啟用…

七、自動化概念篇

自動化測試概念 自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常&#xff0c;在設計了測試用例并通過評審之后&#xff0c;由測試人員根據測試用例中描述的過程一步步執行測試&#xff0c;得到實際結果與期望結果的比較。在此過程中&#xff0c;為了節省人…

redis cluster 的通信機制

Redis Cluster 的通信機制是其分布式架構的核心&#xff0c;基于 Gossip 協議 和 Cluster Bus 實現節點間狀態同步與數據協調。以下是其通信機制的核心要點&#xff1a; 二進制協議&#xff1a;數據以字節流形式編碼&#xff08;如Protobuf、Thrift、MQTT、Gossip&#xff09;。…

CTF web入門之文件上傳

知識點 產生文件上傳漏洞的原因 原因: 對于上傳文件的后綴名(擴展名)沒有做較為嚴格的限制 對于上傳文件的MIMETYPE(用于描述文件的類型的一種表述方法) 沒有做檢查 權限上沒有對于上傳的文件目錄設置不可執行權限,(尤其是對于shebang類型的文件) 對于web server對于上傳…

PhotoShop學習09

1.彎曲鋼筆工具 PhotoShop提供了彎曲鋼筆工具可以直觀地創建路徑&#xff0c;只需要對分段推拉就能夠進行修改。彎曲港幣工具位于工具面板中的鋼筆工具里&#xff0c;它的快捷鍵為P。 在使用前&#xff0c;可以把填充和描邊選為空顏色&#xff0c;并打開路徑選項&#xff0c;勾…