Microsoft:Python轻松实现微软数字覆盖自动化

Python 实现微软 UI 自动化(数字覆盖交互

微软数字覆盖(Numeric Overlay) ,是 Windows 系统自带的快速访问键 / 数字标记 功能(按 Alt 键触发,给可点击 UI 元素显示数字 / 字母,直接按对应键操作),本质是Windows UI 自动化(Microsoft UI Automation)能力。

开箱即用的 Python 工具,实现:

  • 触发 Windows 数字覆盖标记
  • 定位、点击、输入 UI 元素
  • 模拟数字覆盖按键操作
  • 支持所有 Windows 桌面应用(记事本、浏览器、Office、系统窗口等)

一、依赖安装

bash 复制代码
# 核心:微软 UI 自动化库
pip install pywinauto
# 可选:键盘模拟增强
pip install pynput

二、完整工具代码(直接运行)

python 复制代码
# -*- coding: utf-8 -*-
"""
Windows 数字覆盖 UI 自动化工具
功能:触发数字覆盖、定位元素、模拟点击/按键、自动化操作
"""
import time
import pywinauto
from pywinauto import Application, Desktop
from pywinauto.keyboard import send_keys
from pywinauto.findwindows import ElementNotFoundError

class WindowsOverlayAutomator:
    def __init__(self):
        """初始化自动化工具"""
        self.app = None
        self.window = None
        print("✅ Windows 数字覆盖 UI 自动化工具已启动")
        print("ℹ️  快捷键:Alt 键 = 触发系统数字覆盖标记")

    def connect_window(self, title_regex: str):
        """
        连接目标窗口(支持模糊匹配标题)
        :param title_regex: 窗口标题关键词(如:记事本、Edge、设置)
        """
        try:
            # 连接桌面已打开的窗口
            self.window = Desktop(backend="uia").window(title_regex=title_regex)
            self.window.wait('visible', timeout=5)
            self.window.set_focus()  # 激活窗口
            print(f"✅ 已连接窗口:{self.window.window_text()}")
            return True
        except ElementNotFoundError:
            print(f"❌ 未找到窗口:{title_regex}")
            return False

    def trigger_overlay(self):
        """触发 Windows 数字覆盖标记(按 Alt 键)"""
        send_keys("{ALT}")
        print("🔢 已触发系统数字覆盖标记")
        time.sleep(0.2)

    def click_by_overlay_key(self, key: str):
        """
        模拟数字覆盖按键点击(核心功能!)
        :param key: 数字覆盖显示的按键(如 "1", "2", "A", "B")
        """
        send_keys(key)
        print(f"🖱️  已模拟点击覆盖按键:{key}")
        time.sleep(0.3)

    def click_by_text(self, text: str):
        """通过文本定位 UI 元素并点击(无需手动看数字)"""
        try:
            elem = self.window.child_window(title=text, control_type="Button")
            elem.click()
            print(f"🖱️  已点击文本元素:{text}")
        except ElementNotFoundError:
            print(f"❌ 未找到文本元素:{text}")

    def input_text(self, text: str):
        """向激活的输入框输入文本"""
        send_keys(text, with_spaces=True)
        print(f"⌨️  已输入文本:{text}")
        time.sleep(0.2)

    def list_all_controls(self):
        """打印窗口内所有可交互 UI 元素(调试用)"""
        print("\n📋 窗口内可交互元素:")
        self.window.print_control_identifiers()

# ====================== 示例:快速使用 ======================
if __name__ == "__main__":
    # 1. 创建自动化工具实例
    auto = WindowsOverlayAutomator()
    
    # 2. 连接目标窗口(修改为你要操作的窗口标题)
    auto.connect_window("记事本")  # 示例:记事本
    # auto.connect_window("设置")   # 示例:Windows 设置
    # auto.connect_window("Edge")    # 示例:Edge浏览器
    
    # 3. 触发数字覆盖标记
    auto.trigger_overlay()
    
    # 4. 模拟数字覆盖按键(手动看屏幕上的数字,替换成对应按键)
    # auto.click_by_overlay_key("1")
    # auto.click_by_overlay_key("2")
    
    # 5. 直接输入文本
    # auto.input_text("Hello Windows 数字覆盖!")
    
    # 可选:打印所有元素(调试用)
    # auto.list_all_controls()
    
    print("\n🎉 操作完成!")

三、核心功能说明(你最关心的)

1. 触发数字覆盖

python 复制代码
auto.trigger_overlay()  # 等价手动按 Alt 键,显示数字标记

2. 模拟数字覆盖点击(核心!)

  1. 运行代码触发覆盖后,看屏幕上的数字 / 字母
  2. 直接传入对应字符即可点击:
python 复制代码
auto.click_by_overlay_key("5")  # 点击覆盖标记 5
auto.click_by_overlay_key("A")  # 点击覆盖标记 A

3. 免手动看数字:直接按文本点击

python 复制代码
auto.click_by_text("保存")
auto.click_by_text("确定")
auto.click_by_text("关闭")

四、快速上手步骤

  1. 打开你要操作的软件(如记事本、设置、Office、微信
  2. 修改代码中 connect_window 的窗口名称
  3. 运行代码 → 自动触发数字覆盖
  4. 看屏幕上的数字 → 调用 click_by_overlay_key 完成操作

五、进阶实用场景

场景 1:自动化打开 Windows 设置

python 复制代码
auto.connect_window("设置")
auto.trigger_overlay()
auto.click_by_overlay_key("6")  # 假设网络是 6
auto.click_by_overlay_key("2")  # 假设 WIFI 是 2

场景 2:自动化记事本输入 + 保存

python 复制代码
auto.connect_window("记事本")
auto.input_text("这是自动化输入的内容")
send_keys("{VK_MENU down}f{VK_MENU up}")  # Alt+F 打开菜单
auto.click_by_overlay_key("1")  # 保存

六、关键优势

  1. 完全基于微软官方 UI 自动化,稳定不封号
  2. 支持所有 Windows 桌面应用
  3. 模拟人类操作,和手动按数字覆盖完全一致
  4. 代码轻量,无需安装额外系统组件

总结

  1. 这个工具直接实现了微软数字覆盖交互 ,核心是 trigger_overlay + click_by_overlay_key
  2. 依赖只有 pywinauto,安装简单、运行稳定
  3. 可直接改造成自动化脚本、批量工具、GUI 小软件
相关推荐
rosmis2 小时前
复杂工程拆解:自顶向下设计,自底向上实现
人工智能·python·机器人·自动化·自动驾驶·硬件工程·制造
柯儿的天空2 小时前
2026年AI技术突破与产业落地全景:从GPT-5到多模态智能体的新纪元
人工智能·gpt·microsoft·开源·aigc·ai编程·ai写作
小橙子学AI2 小时前
OpenClaw 定时任务与提醒:打造你的 AI 自动化工作流
运维·人工智能·自动化
twc8292 小时前
使用LLM应用和提取不可言说知识
microsoft·大模型·llm·知识工程
yhdata2 小时前
237.2亿元!电容式触摸按键控制芯片2032年市场规模锁定,技术迭代催生新增长极
microsoft
wzl202612132 小时前
基于企微API与数据可视化,构建私域运营的监控与ROI分析体系
信息可视化·自动化·企业微信·rpa
测试_AI_一辰2 小时前
Agent & RAG 测试工程笔记 14:RAG门控层拆解:什么时候该答?什么时候必须拒绝?
人工智能·算法·ai·自动化·ai编程
鹓于2 小时前
微软官方Python网格覆盖与鼠标控制库
microsoft·自动化
专注VB编程开发20年3 小时前
Typescript就像C#,VS IDE以前对JS只有基础、弱智能的支持
javascript·vscode·microsoft·typescript