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 小软件
相关推荐
shushangyun_16 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉16 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
dayuOK630716 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体
Data-Miner16 天前
大语言模型+智能体AI,122页PPT详解落地应用培训!
人工智能·microsoft·语言模型
志栋智能16 天前
超自动化巡检:如何选择适合你的起点?
运维·自动化
HackTwoHub16 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
csdndeyeye16 天前
拆解AI投简历插件:塔塔网申的技术逻辑和实测数据
人工智能·自动化·秋招·ai投简历插件·ai找工作·求职助手·应届生就业
小白学大数据16 天前
Python + 大模型行业资讯自动化摘要流水线完整工程实现方案
开发语言·python·自动化
Super Scraper16 天前
如何批量抓取 TikTok 数据而不被封锁?完整指南
爬虫·ai·自动化·抖音·tiktok·ai agent
曦尧16 天前
GitHub - jwasham/coding-interview-university: 一份完整的计算机科学学习计划,助你成为软件工程师。· GitHub
ai·自动化