python库win32gui,windows的API管理及自动化

使用了python实现了打开windows的鼠标属性页面并更改鼠标的主键的功能,今天主要是针对使用的库进行一个讲解,也即是win32gui库的详细讲解。

对于windows的打开的窗口中,可以通过窗口的类型和名字来进行窗口的具体查找,使用的win32gui.FindWindow方法来进行查找,传入的参数是FindWindow(lpClassName=None, lpWindowName=None),该方法返回的是窗口的句柄,如果返回的句柄值是0的话,就是在当前打开的窗口中未找到想要找的窗口,这里就要查找一下自己的输入是不是存在什么问题,可能就是输入的窗口的类型不对,或者是名称不对;例如这里想要找到鼠标属性窗口,通过的就是窗口的名称来进行查找,对于输入的两个值可以为None。

复制代码
window_name = u'鼠标 属性'
 hwnd = win32gui.FindWindow(None, window_name)

添加图片注释,不超过 140 字(可选)

通过只使用窗口的名字即可查到该窗口的句柄

添加图片注释,不超过 140 字(可选)

而获取到这个窗口的句柄之后,需要做的就是对这个窗口下的组件进行轮询,想要找到这个窗口里面的某个组件,这个组件可能是个button,可能是个checkButton,想要找到的是切换主要和次要按钮这个checkbutton和确定这个button,定义一个button列表,然后对窗口的句柄使用EnumChildWindows方法,并将查找到的子窗口存储在button列表中,存入了之后,其实是不知道各个button子列是什么,可以使用GetWindowText来输出一下每个button子列的名字,输入的就是子列的句柄,然后输出的即为名称。

添加图片注释,不超过 140 字(可选)

通过找到的button2即是想要找到的切换主要和次要按钮这个checkbutton,所以对这个checkbutton进行模拟点击,使用的是win32gui.PostMessage方法,输入的是checkbutton的句柄,同时还有左键按下的模拟输入,以及左鼠标按钮;而有了按下,对应的就有按键弹起。

复制代码
    button = []
    win32gui.EnumChildWindows(hwnd,lambda hwnd,param:param.append(hwnd),button)
    changeButtonhwnd = button[2]
    win32gui.PostMessage(changeButtonhwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON)
    time.sleep(0.01)
    # 模拟鼠标弹起
    win32api.PostMessage(changeButtonhwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON)

要注意,两个模拟按钮行为之间要有间隙,不然的话会出现冲突导致其中一个行为失效。

以上就是一个简单的对于windows窗口的一个自动化的全过程。

相关推荐
DeepVisionary1 分钟前
SoundHound 完成收购 LivePerson:股权对价 4300 万美元,实际总成本约 3.04 亿
python·自动化
deepseek2319 分钟前
Google Gemini Agentic Video 上线:88% 少 token 的主动取样如何改写长视频理解
python·多模态·ai agent·gemini·视频理解
Zane199430 分钟前
只重写了 __eq__,为什么类突然变得不可哈希了?常用魔法方法大盘点
后端·python
2601_9628857232 分钟前
如何用 Python 做 A 股全市场扫描选股?(多条件筛选实战)
开发语言·python
零域码客37 分钟前
一文掌握 jQuery + Flask 全栈核心知识点(前端交互 + 后端接口 + 前后端联调)
前端·python·ajax·flask·jquery·前后端联调·web全栈
秋名RG39 分钟前
Java 泛型深度解析:从类型安全到现代实践(JDK 21 视角)
java·windows·安全
BYSJMG41 分钟前
计算机毕设选题做什么好?基于大数据的用户美食数据分析与可视化,PySpark预处理+ECharts大屏,含Isolation Forest异常检测算法
大数据·python·信息可视化·数据分析·spark·课程设计·美食
顿哥GPT42 分钟前
ChatGPT Plus / Pro + Codex 深度实战指南(2026年9月5日):从模型能力对比到 Codex 自动化编程工作流全解析
人工智能·chatgpt·自动化
奈斯先生Vector43 分钟前
AIGC 视频生成换个拍法:用 Kling Video 把一张人物图变成可剪辑的短故事
开发语言·人工智能·windows·python·aigc·音视频
卷无止境1 小时前
当"精简主义"住进AI编程助手:Ponytail深度解读
后端·python·fastapi