通过 menu().items() 可以获取当前级次下的菜单项,再通过 sub_menu() 判断是有下级菜单项,不断的递归,把所有的菜单项打印出来。
from pywinauto import Application import psutil def get_pid(name): '''
作用:根据进程名获取进程pid
返回:返回匹配第一个进程的pid
''' pids = psutil.process_iter() for pid in pids: if(pid.name() == name): return pid.pid def list_menu(menu_item, space): '''
作用:递归法遍历菜单
''' for i in menu_item.items(): if(len(i.text()) > 0): print(space + i.text()) if(i.sub_menu() != None): list_menu(i.sub_menu(), " " + space) app = Application().connect(process = get_pid("notepad.exe")) win = app.window(title_re = "cmd.txt - 记事本") list_menu(win.menu(), "") win.menu_select("文件->页面设置")
我以记事本来做个示例,效果图如下:
这是菜单栏操作的效果图演示,我打开的是页面设置:
喜欢的点个赞❤吧!
本文地址:https://blog.csdn.net/qq_38161040/article/details/109055340
Renovate在GitHubActions中不推荐直接运行,因其非设计运行环境,缺乏长期运行、状态持久化和webhook驱动能力;官方推荐使用GitHubApp或自托管Docker镜像(如renovatebot/renovate),若必须用Actions则需严格限制为定时触发、配置专用token、...
直接用open()读取生产配置文件危险,因可能意外打印、日志落盘、覆盖配置或执行恶意代码;应只读打开、禁用exec/eval、用safe_load或ast.parse解析,并严格审计输出与权限。 为什么直接用open()读取生产配置文件是危险的 生产环境的配置文件(如settings.py、appl...
直接用subprocess调用git命令同步GitLab和GitHub是轻量、可控、不依赖第三方库的可靠方案,核心三步:裸克隆→添加远程→gitpush--mirror,支持全分支、标签及完整历史同步,且避免API封装带来的繁琐遍历与权限管理。 直接用subprocess调用git命令同步GitLa...
Appium连不上手机设备的常见原因:USB调试未开启或授权被拒、驱动未安装、端口被占;adbdevices不识别源于调试开关未启、模式非MTP/PTP、厂商后台限制;报错“Couldnotfinddevice”多因adb通信中断或DesiredCapabilities配置错误。 用Appium连不...
根本原因是Windows任务计划程序默认工作目录为C:\Windows\System32,导致相对路径失效;需强制切换工作目录、使用绝对路径、配置完整Python解释器路径、显式添加环境变量、重定向日志并启用历史记录。 任务计划程序中Python脚本找不到模块或文件 根本原因不是Python本身出错...
最稳方案是用oss2库的put_object_from_file:三行代码完成上传,自动分片、断点续传;endpoint须带https://且地域严格匹配;文件夹同步需手动遍历+去重校验,超10万文件应改用ossutilsync。 用oss2.Bucket.put_object_from_file同...
PyInstaller图标不显示主因是--icon路径错误或.ico格式不合规(需多尺寸Windows原生图标);应使用绝对路径、--icon置于脚本名前,并配合sys._MEIPASS在运行时加载图标。 用PyInstaller打包Python脚本为exe时,图标不显示? 图标没生效,大概率是--...
Python3.12未优化GC以解决长任务内存问题;其改进仅限gc模块内部(如停顿减少、get_stats更准),不改变手动GC行为或效果,真正有效的是控制对象生命周期而非依赖GC回收。 Python3.12并没有引入“优化的垃圾回收机制”用于长耗时自动化任务——这是个常见误解。它确实改进了gc模块...