PowerToys DSC PowerOCR 模块:用声明式配置管理 Power OCR(文本提取器)的快捷键与识别语言 📅 发布时间:2026/9/7 7:13:49 👁 浏览次数: PowerToys DSC PowerOCR 模块用声明式配置管理 Power OCR文本提取器的快捷键与识别语言【免费下载链接】PowerToysMicrosoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows项目地址: https://gitcode.com/GitHub_Trending/po/PowerToysMicrosoft PowerToys 支持 DSC v3Desired State Configuration来声明式地管理各 PowerToy 的配置而PowerOCR模块文档doc/dsc/modules/PowerOCR.md正是其中针对 Power OCRText Extractor文本提取器的配置参考。Power OCR 利用光学字符识别OCR从屏幕任意区域提取文本并复制到剪贴板适用于从图片、视频、PDF 或任意屏幕内容中捕获文字。本文围绕该文档的完整内容展开介绍PowerOCRDSC 模块的两个可配置属性激活快捷键与首选语言、三种使用方式PowerToys.DSC.exe直接执行、DSC 配置文件、WinGet 配置的完整示例并结合开源仓库中的设置资源源码说明这些配置项在 PowerToys 内部的真实落点。模块定位settings 资源如何映射到 PowerOCRPowerToys DSC 通过PowerToys.DSC.exe命令行工具提供唯一的settings资源统一管理所有 PowerToy 模块的配置每个模块可独立配置实现细粒度控制参见 DSC 总览。在设置资源源码中各模块名与具体设置类型通过一张映射表绑定PowerOCR 对应PowerOcrSettings类型{ nameof(ModuleType.PowerOCR), CreateModuleFunctionDataPowerOcrSettings },参见 SettingsResource.cs。从源码结构看PowerOcrSettingsPowerOcrSettings.cs的默认Name为TextExtractor、Version为1并且它实现了IHotkeyConfig接口暴露了名为Activation_Shortcut的热键访问器——这解释了为什么 DSC 文档中ActivationShortcut是一个结构化对象以及为什么该模块的快捷键能参与 PowerToys 的统一热键冲突检测。模块配置文件实际序列化时以TextExtractor为键见 SndPowerOcrSettings.cs即settings.json中该模块的段名是TextExtractor而非PowerOCR这一点在用get/export查看当前状态时值得留意。可配置属性详解PowerOCR模块支持两个可配置属性。ActivationShortcut激活文本提取的键盘快捷键类型object默认值WinShiftT该对象描述一个完整的组合键包含以下子属性子属性类型说明winboolean是否按下 Windows 键ctrlboolean是否按下 Ctrl 键altboolean是否按下 Alt 键shiftboolean是否按下 Shift 键codeinteger虚拟键码Virtual Key Codekeystring键名示例中code 84、key T两者是同一物理键的两种表达84 是字母 T 的虚拟键码配置时应保持一致。源码中该热键通过HotkeyAccessor注册到全局快捷键体系中PowerOcrSettings.cs当快捷键无法绑定时会回退到DefaultActivationShortcut即默认的WinShiftT。PreferredLanguageOCR 首选识别语言类型string默认值系统语言用于指定 OCR 识别时优先使用的语言如en-US、fr-FR、es-ES。对于混合语言内容将语言设置为覆盖目标文本的语种可以显著改善识别效果。使用方式与完整示例方式一PowerToys.DSC.exe 直接执行——配置激活快捷键以下示例自定义 OCR 激活快捷键完整继承自原文档示例 1$config { settings { properties { ActivationShortcut { win $true ctrl $false alt $false shift $true code 84 key T } } name PowerOCR version 1.0 } } | ConvertTo-Json -Depth 10 -Compress PowerToys.DSC.exe set --resource settings --module PowerOCR --input $configset操作的底层行为可以从 SettingsResource.cs 得到印证它先GetState()读取当前状态生成当前态与期望态的 diff然后仅在TestState()判定存在差异时才调用SetState()落盘——也就是说set是幂等的重复执行不会产生无谓的写操作。随后输出两行 JSON应用后的状态与差异信息。方式二DSC 配置文件——设置首选识别语言以下示例通过 DSC v3 配置文件设置 OCR 语言原文档示例 2dsc config set --file powerocr-language.dsc.yaml# powerocr-language.dsc.yaml $schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json resources: - name: Configure Power OCR language type: Microsoft.PowerToys/PowerOCRSettings properties: settings: properties: PreferredLanguage: en-US name: PowerOCR version: 1.0注意资源类型是Microsoft.PowerToys/PowerOCRSettings这与manifest命令生成的清单命名规则一致GenerateManifest()以{module}Settings作为资源类型名SettingsResource.cs因此 PowerOCR 的 DSC 资源类型即为Microsoft.PowerToys/PowerOCRSettings。方式三WinGet 配置——安装 PowerToys 并同时配置 Power OCR以下示例将安装与配置合并在一个 WinGet 配置文件中执行原文档示例 3适合批量部署新机器winget configure winget-powerocr.yaml# winget-powerocr.yaml $schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2023/08/config/document.json metadata: winget: processor: dscv3 resources: - name: Install PowerToys type: Microsoft.WinGet.DSC/WinGetPackage properties: id: Microsoft.PowerToys source: winget - name: Configure Power OCR type: Microsoft.PowerToys/PowerOCRSettings properties: settings: properties: PreferredLanguage: en-US name: PowerOCR version: 1.0两个资源按声明顺序执行先由 WinGet 安装Microsoft.PowerToys再由 PowerToys 的 DSC 资源应用 OCR 语言配置。多语言场景配置法语文本提取原文档示例 4 演示了面向多语言内容的配置将首选语言指向法语dsc config set --file powerocr-multilingual.dsc.yaml# powerocr-multilingual.dsc.yaml $schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json resources: - name: Multilingual OCR type: Microsoft.PowerToys/PowerOCRSettings properties: settings: properties: PreferredLanguage: fr-FR name: PowerOCR version: 1.0典型用例文档数字化——针对英文文档批量提取文本resources: - name: Document OCR type: Microsoft.PowerToys/PowerOCRSettings properties: settings: properties: PreferredLanguage: en-US name: PowerOCR version: 1.0国际化内容——针对西班牙语等混合语言内容resources: - name: Multilingual OCR type: Microsoft.PowerToys/PowerOCRSettings properties: settings: properties: PreferredLanguage: es-ES name: PowerOCR version: 1.0配套运维操作get / test / schema / manifest围绕 PowerOCR 模块还可以使用 settings 资源的通用运维子命令参考 Settings Resource# 查看 PowerOCR 当前配置export 与 get 等价 PowerToys.DSC.exe get --resource settings --module PowerOCR PowerToys.DSC.exe export --resource settings --module PowerOCR # 验证当前配置是否与期望状态一致 $desired {settings:{properties:{PreferredLanguage:en-US},name:PowerOCR,version:1.0}} PowerToys.DSC.exe test --resource settings --module PowerOCR --input $desiredtest输出的 JSON 中包含_inDesiredState布尔属性指示配置是否处于期望状态源码中该值由TestState()计算得出SettingsResource.cs。可以据此编写漂移检测脚本若为false则再执行一次set完成修正。# 获取 PowerOCR 设置的 JSON Schema了解全部可配置属性及类型 PowerToys.DSC.exe schema --resource settings --module PowerOCR # 生成 DSC 资源清单用于注册/引用资源 PowerToys.DSC.exe manifest --resource settings --module PowerOCR需要说明的是PowerOCR的 DSC 支持是源码映射表中显式登记的能力SettingsResource.cs同一映射表注释中列出了当前不受支持的模块MouseWithoutBorders、PowerLauncher、NewPlusPowerOCR 不在其列。小结与延伸阅读PowerOCRDSC 模块将文本提取器最容易产生机器间差异的两项设置——激活快捷键与识别语言——纳入了声明式管理用 PowerShell 对象或 YAML 声明期望状态通过PowerToys.DSC.exe、dsc或winget configure三种入口之一应用并用test子命令持续验证漂移。配合 settings 资源的schema/manifest能力可以将其纳入团队级的配置即代码流程。进一步阅读Settings Resource 参考settings 资源的全部操作与多模块配置示例PowerToys DSC 总览三种使用方式、支持模块列表与通用操作ZoomIt 模块同一模块文档集下的另一个 DSC 配置参考SettingsResource 源码get/set/test/export/schema/manifest 的实现入口PowerOcrSettings 源码PowerOCR 设置模型、热键访问器与TextExtractor模块名【免费下载链接】PowerToysMicrosoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考