You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pywinauto向Windows任务栏搜索框输入文本管理启动项?

解决Windows任务栏搜索控件识别问题(用于自动化禁用启动项)

问题背景

需要关闭干扰AUT自动化测试的应用,计划通过Windows任务栏搜索窗口输入文本进入启动项设置来禁用它,但无法识别该搜索窗口控件。尝试过dump_tree()和Inspect工具均未找到有效定位方法,以下是编写的英文及俄文本地化pywinauto代码:

英文版本代码

from pywinauto import Desktop
taskbar = Desktop(backend="uia").window(title="Taskbar", control_type="Pane")
# this step to get "Search" window focused
taskbar.child_window(title="Start", control_type="Button").click_input()
search = Desktop(backend="uia").window(title="Type here to search", control_type="Edit")
search.set_text("Startup")

俄文版本代码

taskbar = Desktop(backend="uia").window(title="Панель задач", control_type="Pane")
# этот шаг чтобы получить фокус окна "Поиск"
taskbar.child_window(title="Пуск", control_type="Button").click_input()
search = Desktop(backend="uia").window(title="Поле поиска", control_type="Edit")
search.set_text("Автозагрузка")

Windows10本地化任务栏搜索界面


解决方案

方法1:用快捷键唤起搜索框(规避控件定位)

无需定位开始按钮和搜索控件,直接通过系统快捷键Win+S唤起搜索框,再输入关键词,不受系统本地化语言影响:

from pywinauto import keyboard

# 唤起搜索框
keyboard.send_keys('{VK_LWIN down}s{VK_LWIN up}')
# 输入对应语言的启动项关键词(英文填"Startup",俄文填"Автозагрузка")
keyboard.send_keys("Автозагрузка")
# 回车进入设置界面
keyboard.send_keys('{ENTER}')

方法2:直接调用系统命令打开启动项设置(最可靠)

跳过搜索步骤,直接通过系统内置命令打开启动项设置,完全规避控件识别问题,适用于所有Windows版本:

import subprocess

# 打开启动项设置界面
subprocess.run(["start", "ms-settings:startupapps"], shell=True)

此方法不依赖控件定位,不会因系统语言差异导致失败,是自动化操作启动项的最优方案。


内容的提问来源于stack exchange,提问作者Dmitry Afanasyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:43:14