python——句柄
一、概念
句柄指的是操作系统为了标识和访问对象而提供的一个标识符,在操作系统中,每个对象都有一个唯一的句柄,通过句柄可以访问对象的属性和方法。例如文件、进程、窗口等都有句柄。在编程中,可以通过句柄来操作这些对象,从而实现对系统资源的控制和管理。
二、实战
1、获取当前所有窗口的句柄
def get_all_window():hwnd_list = []win32gui.EnumWindows(lambda hwnd, param: param.append(hwnd), hwnd_list)return hwnd_list
2、从所有窗口句柄中,根据窗口标题title,获取想要的特定窗口句柄
def get_hwnd_from_name(name)hwnd_list = []all_hwnd_list = get_all_window() # 调用上面的方法for hwnd in all_hwnd_list:title = win32gui.GetWindowText(hwnd) # 根据窗口句柄,获取句柄对应的窗口的标题if title == name:hwnd_list.append(hwnd)logging.info(f'窗口标题为{name}的所有窗口的句柄:{hwnd_list}')return hwnd_list
3、根据窗口句柄,获取一些别的信息(适用于窗口句柄不唯一,但是标题、类名等值唯一的情况)
def get_windows_info(hwnd):all_hwnd_list = get_all_window() # 调用上面的方法for hwnd in all_hwnd_list:# 获取窗口标题title = win32gui.GetWindowText(hwnd)# 获取窗口类名clsname = win32gui.GetClassName(hwnd)# 获取窗口位置和大小rect= win32gui.GetWindowRect(hwnd)# 获取窗口所在的进程ID和线程IDpid, tid = win32process.GetWindowThreadProcessId(hwnd)# 返回窗口的属性信息return {'title': title, 'class': clsname, 'rect': rect, 'pid': pid, 'tid': tid}
4、获取主窗口句柄,根据其子窗口的标题获取该子窗口对象,然后点击子窗口
def blurred_click_button_in_window(title='XX', Buttons='状态'):handle = get_hwnd_from_name(title) # 调用上面的方法# handle = handle[0] # 如果列表有多个值,则需要确认你想要的窗口句柄是哪一个print(f'获取到的窗口句柄是:{handle}')time.sleep(1)app = Application(backend='uia').connect(handle=handle) # 连接到此窗口try:win32gui.SetForegroundWindow(handle) # 将窗口置顶,避免被遮挡except Exception as e:logging.info(f'{e}')main_window = app.window(handle=handle) # 获取主窗口对象main_window.print_control_identifiers() # 打印出此主窗口包含的所有子窗口的信息(title,auto_id,control_type)child_window = main_window.child_window(title_re=Buttons, found_index=0) #根据子窗口的标题获取子窗口对象(_re表示模糊匹配,found_index=0适用于title不唯一时取索引为第一位的),也可根据类名来获取:child_window = main_window.child_window(class_name='Edit')child_window.click_input() # 点击子窗口,如果是输入框赋值可以写成:child_window.type_keys('Cc')return main_window
相关文章:
python——句柄
一、概念 句柄指的是操作系统为了标识和访问对象而提供的一个标识符,在操作系统中,每个对象都有一个唯一的句柄,通过句柄可以访问对象的属性和方法。例如文件、进程、窗口等都有句柄。在编程中,可以通过句柄来操作这些对象&#x…...
KubeSphere 与 Pig 微服务平台的整合与优化:全流程容器化部署实践
一、前言 近年来,为了满足越来越复杂的业务需求,我们从传统单体架构系统升级为微服务架构,就是把一个大型应用程序分割成可以独立部署的小型服务,每个服务之间都是松耦合的,通过 RPC 或者是 Rest 协议来进行通信,可以按照业务领域来划分成独立的单元。但是微服务系统相对…...
ESP8266-01S、手机、STM32连接
1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块,主要模式如下图: 上节说到,我们需要用到AT固件进行局域网应用(ESP8266连接的STM32和手机进行连接)。 ESP8266为一个WiFi透传模块,和…...
Web开发 -前端部分-CSS-2
一 长度单位 代码实现: <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...
【QT用户登录与界面跳转】
【QT用户登录与界面跳转】 1.前言2. 项目设置3.设计登录界面3.1 login.pro参数3.2 界面设置3.2.1 登录界面3.2.2 串口主界面 4. 实现登录逻辑5.串口界面6.测试功能7.总结 1.前言 在Qt应用程序开发中,实现用户登录及界面跳转功能是构建交互式应用的重要步骤之一。下…...
记录一次关于spring映射postgresql的jsonb类型的转化器事故,并使用hutool的JSONArray完成映射
事件的起因是这样的,那次事故发生的起因是因为WebFlux和postgreSQL去重新做鱼皮的鱼图图项目(鱼图图作业)。 在做到picture表的时候,发现postgreSQL中有个jsonb的类型可以更好的支持json数组。 出于锻炼新技术的目的,…...
基于 HTML5 Canvas 制作一个精美的 2048 小游戏--day2
为了使 2048 游戏的设计更加美观和用户友好,我们可以进行以下几项优化: 改善颜色方案:使用更温馨的颜色组合。添加动画效果:为方块的移动和合并添加渐变效果。优化分数显示:在分数增加时使用动画效果。 以下是改进后…...
Django框架:python web开发
1.环境搭建: (a)开发环境:pycharm (b)虚拟环境(可有可无,优点:使用虚拟环境可以把使用的包自动生成一个文件,其他人需要使用时可以直接选择导入包ÿ…...
MySQL、HBase、ES的特点和区别
MySQL:关系型数据库,主要面向OLTP,支持事务,支持二级索引,支持sql,支持主从、Group Replication架构模型(本文全部以Innodb为例,不涉及别的存储引擎)。 HBase࿱…...
联发科MTK6762/MT6762安卓核心板_4G智能模块应用
MT6762安卓核心板是一款工业级高性能、可运行 android9.0 操作系统的 4G智能模块。MT6762平台打造具备 AI 体验、先进双摄像头拍摄效果且具备丰富连接功能的智能手机主板。 MT6762安卓核心板 是一款髙性能低功耗的 4G 全网通安卓智能模块。此模块支持 2G/3G/4G 移动,…...
Windows7系统下载安装Source Code Pro字库
Source Code Pro字库介绍 Source Code Pro是由Adobe推出的一款专为代码展示和编写设计的开源等宽字体。它不仅在编程社区中广受好评,还被广泛应用于各种编辑器环境中,以提升代码的可读性和编程体验。 Source Code Pro的设计充分考虑了编程符号的呈…...
Navicat 17 功能简介 | 商业智能 BI
Navicat 17 功能简介 | 商业智能BI 随着 17 版本的发布,Navicat 也带来了众多的新特性,包括兼容更多数据库、全新的模型设计、可视化智能 BI、智能数据分析、可视化查询解释、高质量数据字典、增强用户体验、扩展 MongoDB 功能、轻松固定查询结果、便捷U…...
C# winodw TableLayoutPanel 料盒生产状态UI自动生成
料盒生产状态UI自动生成,效果如下 以前公司项目的这些都是手动拖控件做的。每个设备的料盒数量不一样,层数不一样时都要发好几个小时去改相关细节和代码。上次改了一次。这个又来了。上次就有想法做成根据参数自动生成。但项目时间有限有没有去深入思路和…...
提示词的艺术----AI Prompt撰写指南(个人用)
提示词的艺术 写在前面 制定提示词就像是和朋友聊天一样,要求我们能够清楚地表达问题。通过这个过程,一方面要不断练习提高自己地表达能力,另一方面还要锻炼自己使用更准确精炼的语言提出问题的能力。 什么样的提示词有用? 有…...
哪些前端打印插件可以实现监听用户选择了打印还是取消
在前端实现监听用户是否选择了打印还是取消的功能,确实是一个挑战,因为浏览器的打印行为是通过原生对话框处理的,而这些对话框的行为无法直接被 JavaScript 控制或监听。不过,有一些插件和方法可以帮助你更接近这个目标࿱…...
【PyCharm】连接Jupyter Notebook
【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 【PyCharm】连接Jupyter Notebook PyCharm连接Jupyter Notebook的过程可以根据不同的需求分为 本地连接 和 远程连…...
【Linux系统编程】—— 深入理解Linux中的环境变量与程序地址空间
文章目录 环境变量常见的环境变量查看环境变量环境变量的修改与使用环境变量的组织⽅式环境变量的命令通过代码如何获取环境变量环境变量的继承 前言:在Linux系统中,环境变量和程序地址空间是系统管理和进程运行的重要组成部分。本文将详细探讨环境变量的…...
Spark常见面试题-部分待更新
1. 简述hadoop 和 spark 的不同点(为什么spark更快) Hadoop是一个分布式管理、存储、计算的生态系统,包括HDFS(分布式文件系统)、MapReduce(计算引擎)和YARN(资源调度器)…...
Android BitmapShader实现狙击瞄具十字交叉线准星,Kotlin
Android BitmapShader实现狙击瞄具十字交叉线准星,Kotlin <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.…...
linux通过web向mac远程传输字符串,mac收到后在终端中直接打印。
要通过Web从Linux向Mac远程传输字符串,并在Mac的终端中直接打印,可以使用以下方法。这里假设Linux作为服务器,Mac作为客户端。 方法 1:使用Python的HTTP服务器 在Linux上启动一个简单的HTTP服务器,Mac通过curl获取字符…...
大模型解释性不是选修课:3类监管合规红线+4套生产级XAI工具链,今天不部署明天被叫停
第一章:大模型工程化中的模型解释性方案 2026奇点智能技术大会(https://ml-summit.org) 在大规模语言模型落地金融风控、医疗辅助与司法决策等高敏感场景时,模型解释性已从“可选能力”升级为合规性刚需。缺乏可追溯的推理依据不仅阻碍人工复核…...
3小时从文字到视频:TaleStreamAI 重新定义AI小说推文创作自由
3小时从文字到视频:TaleStreamAI 重新定义AI小说推文创作自由 【免费下载链接】TaleStreamAI AI小说推文全自动工作流,自动从ID到视频 项目地址: https://gitcode.com/gh_mirrors/ta/TaleStreamAI 在数字内容创作的新时代,TaleStreamA…...
ComfyUI Segment Anything:零基础也能掌握的智能图像分割神器
ComfyUI Segment Anything:零基础也能掌握的智能图像分割神器 【免费下载链接】comfyui_segment_anything Based on GroundingDino and SAM, use semantic strings to segment any element in an image. The comfyui version of sd-webui-segment-anything. 项目地…...
Web Scraper完整指南:零代码网页数据抓取终极解决方案
Web Scraper完整指南:零代码网页数据抓取终极解决方案 【免费下载链接】web-scraper-chrome-extension Web data extraction tool implemented as chrome extension 项目地址: https://gitcode.com/gh_mirrors/we/web-scraper-chrome-extension Web Scraper是…...
无需Root!Termux+Samba三步搭建手机NAS,跨平台文件共享无忧
1. 为什么你需要手机NAS? 每次用微信传文件都要忍受压缩画质?电脑和手机互传文件还得找数据线?家里多台设备共享电影资源只能靠U盘来回倒腾?这些问题我都遇到过,直到发现用旧手机搭建NAS这个神器方案。最让我惊喜的是…...
cv_unet_image-colorization多场景应用:婚纱照修复+新闻图片复原
cv_unet_image-colorization多场景应用:婚纱照修复新闻图片复原 1. 项目简介与核心原理 cv_unet_image-colorization 是一个基于深度学习技术的智能图像上色工具,它采用先进的UNet神经网络架构,专门用于将黑白照片转换为自然生动的彩色图像…...
ABAP BAPI_PO_CREATE1实战:如何绕过信息记录直接设置PO净价(附代码示例)
ABAP BAPI_PO_CREATE1深度实战:绕过信息记录精准控制采购订单价格的五种策略 在SAP采购订单创建过程中,信息记录(Info Record)中的价格通常会作为默认值自动带出,但实际业务场景往往需要更灵活的价格控制。当遇到特殊采…...
你的Windows图片查看体验还停留在石器时代吗?ImageGlass带你进入现代图像浏览新纪元
你的Windows图片查看体验还停留在石器时代吗?ImageGlass带你进入现代图像浏览新纪元 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在忍受Windows自带的图片…...
WaveTools鸣潮工具箱:3步安装快速上手画质优化与账号管理终极指南
WaveTools鸣潮工具箱:3步安装快速上手画质优化与账号管理终极指南 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools WaveTools鸣潮工具箱是一款专为《鸣潮》PC版玩家设计的开源辅助工具ÿ…...
Phi-4-mini-reasoning模型部署与远程管理:MobaXterm高效连接与操作指南
Phi-4-mini-reasoning模型部署与远程管理:MobaXterm高效连接与操作指南 1. 引言 当你需要在远程服务器上部署和运行Phi-4-mini-reasoning这类AI模型时,一个高效的远程连接工具能让你事半功倍。MobaXterm作为一款集成了SSH、SFTP、X11服务器等多种功能的…...
