Files
One_click_run/README.md
T

4.0 KiB
Raw Blame History

一键运行 OneClickRun

一键运行工具:以游戏快捷轮盘的形式,通过全局快捷键呼出一个圆形扇区轮盘, 快速启动软件、打开文件夹、打开网址或运行脚本。基于 WinUI 3 + C#.NET 8), 面向 Windows 10 / Windows 11。

功能特性

  • 圆形轮盘,扇区数量与快捷指令数量一致(上限 12 个,默认 5 个演示指令)
  • 全局快捷键呼出/隐藏轮盘(默认 Ctrl+Alt+Q
  • 三种呼出方式:点击显示、长按显示、按住显示(松开即隐藏)
  • 三种选择方式:单击选择、双击选择、滑动选择(仅按住显示时有效)
  • 轮盘显示位置:屏幕中心 / 鼠标位置
  • 指令类型:打开软件、打开文件夹、打开网址、运行 PowerShell 脚本(.ps1/.cmd/.bat
  • 主设置界面:常规(开机启动、轮盘全局开关、主题)、行为、快捷指令、关于
  • 系统托盘:点击设置窗口关闭按钮最小化到托盘,左键点击托盘图标恢复设置窗口, 右键菜单提供「启用/关闭轮盘」「设置」「退出」
  • 日间/夜间/跟随系统主题
  • 轮盘点击外部、Esc 或 8 秒超时自动关闭

目录结构

One_click_run/
├── OneClickRun.sln
├── Directory.Build.props
├── requirements.md               # 开发需求文档
├── scripts/
│   ├── smoke.ps1                 # 冒烟测试:启动→呼出轮盘→Esc 关闭
│   ├── e2e.ps1                   # 端到端测试:11 个场景
│   ├── gen-icon.ps1              # 生成应用图标
│   └── probe-hotkey.ps1          # 探测系统快捷键占用
├── src/
│   ├── OneClickRun.Core/         # 纯逻辑:设置、指令执行、轮盘几何、快捷键解析
│   └── OneClickRun.App/          # WinUI 3 应用:窗口、页面、控件、服务
└── tests/
    └── OneClickRun.Core.Tests/   # 单元测试(xUnit

环境要求

  • 运行环境:Windows 1019041 及以上)或 Windows 11
  • 开发环境:.NET 8 SDK、Windows App SDK 2.4.0NuGet 自动还原)
  • Release 自包含版本已将 .NET 8 运行时与 Windows App SDK 运行时打包进 应用目录,最终用户无需手动安装 .NET 环境

构建与运行

# 构建
dotnet build OneClickRun.sln

# 运行(调试构建输出)
src\OneClickRun.App\bin\x64\Debug\net8.0-windows10.0.19041.0\win-x64\OneClickRun.exe

# 发布 Release 自包含版本(含 .NET 运行时,无需用户安装 .NET
dotnet publish src\OneClickRun.App\OneClickRun.App.csproj -c Release -r win-x64 --self-contained true -o dist\publish\win-x64

# 将发布目录压缩为分发包
powershell Compress-Archive -Path dist\publish\win-x64\* -DestinationPath dist\OneClickRun-0.2.1-win-x64.zip

Release 发布产物位于 dist\ 目录(已加入 .gitignore);最终用户解压后直接 运行 OneClickRun.exe 即可,无需安装 .NET 或 Windows App SDK。

使用说明

  • 默认快捷键 Ctrl+Alt+Q 呼出轮盘;在「呼出与快捷键」页可修改
  • 「常规」页可设置开机启动、轮盘全局开关与主题模式
  • 「快捷指令」页可新增/编辑/删除/排序指令,并支持「测试运行」
  • 点击设置窗口右上角关闭按钮不会退出程序,而是最小化到系统托盘; 左键单击托盘图标恢复设置窗口,右键菜单可切换轮盘全局开关、打开设置或退出程序
  • 设置保存在 %APPDATA%\OneClickRun\settings.json
  • 日志位于 %APPDATA%\OneClickRun\logs\app.log

测试

# 单元测试(62 个)
dotnet test OneClickRun.sln

# 冒烟测试(需要图形会话)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\smoke.ps1

# 端到端测试(11 个场景;需要图形会话)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\e2e.ps1

注意:e2e.ps1 会临时写入并恢复 %APPDATA%\OneClickRun\settings.json、 临时写入并恢复开机启动注册表项,并会启动/关闭记事本等测试进程。