- ACTIVE
- FILE NO.003
- WINDOWS · X64
- APACHE-2.0
BETTERRNP W-003 课堂与活动现场 · 随机抽取工具
点名,抽号,排座/一个窗口解决现场随机。
Windows 桌面工具:把随机点名、随机数字与随机座位收进一套方案。 选择名单后滚停式抽取,结果定格即写入日志;主窗口可收进托盘, 悬浮球置顶双击即可抽取,名单与配置在本地加密保存。
- STARS
- 0
- FORKS
- 0
- ISSUES
- 0
- LANG
- C#
- STATUS
- ACTIVE 持续维护
- VERSION
- v2.1.0(正式版)
- PLATFORM
- Windows 10 / 11 x64
- LICENSE
- Apache License 2.0
- PACKAGE
- 自包含版 / 框架依赖版
- RUNTIME
- .NET 8 WPF
- SOURCE
- TakaHoshino/
BetterRandomNamePicker - DATA
- ./data · ./log AES-GCM
- MODES
- 03 抽取模式 .rnpp 插件
- UPDATED
- 2026.10.17
项目概览OVERVIEW
BetterRNP是一款面向课堂、会议和活动现场的 Windows 随机抽取工具。 它把随机点名、随机数字和随机座位集中在一个轻量桌面程序里: 不用准备表格公式,也不用临时写脚本,选好方案和模式即可开始滚动抽取。
程序支持常驻系统托盘、置顶悬浮球快速抽取、加密本地存储、可配置的照片背景,
以及 .rnpp 插件扩展。v2.0.0 起从 Java Swing 完整重写为
.NET 8 / C# / WPF,界面保持接近 Windows 原生对话框的观感;
旧版 Java 保存的加密名单、数字与座位数据可以继续读取。
- OS
- Windows 10 / 11 x64
- SELF-CONTAINED
- 内置 .NET 8 运行时 解压即用,推荐
- FRAMEWORK
- 需预装 .NET 8 桌面运行时 体积小
- BUILD
- Windows + .NET 8 SDK dotnet build
项目以 Apache License 2.0 发布。所有数据默认保存在程序目录,不登录、不依赖云端; 升级程序不会覆盖已有的 data/ 与 plugins/ 内容。
| 步骤 | 说明 |
|---|---|
| 选择方案 | 从顶部选择预设方案,可分别为不同班级 / 活动建立 |
| 切换模式 | 名字列表、数字或座位模式,共用同一套方案与交互 |
| 开始抽取 | 点击「开始抽取」,结果按 50ms 间隔滚动 |
| 停止定格 | 再次点击「停止」保留最终结果,并写入操作日志 |
| 配置数据 | 进入「配置名单」或对应模式窗口,显式保存修改 |
| 现场辅助 | 在设置中启用托盘、悬浮球、背景主题与自动检查更新 |
抽取结果会写入 log/,并在 data/ 与备份目录保留多份副本
功能特性FEATURES
名字列表、随机数字、随机座位共用同一套方案与交互,覆盖点名、抽号与排座。
- 名字列表
- 数字
- 座位 30×30
结果快速轮换,点击停止后定格,比直接弹出结果更有现场氛围;每次抽取自动记录。
- 50ms 轮换
- 大字号投影
- 操作日志
主窗口可隐藏到托盘,原生 Win32 右键菜单;悬浮球置顶、可拖动、双击即抽取。
- 原生托盘
- 置顶悬浮球
- 单实例唤醒
为不同班级 / 活动建立独立方案,名单支持手动增删与 TXT 导入导出,启动恢复上次方案。
- 多方案
- TXT 导入导出
- 显式保存
导入 PNG / JPG / BMP / GIF / TIFF,支持全局与分类背景、五种填充方式、自由裁切与遮罩。
- 图片库
- 自由裁切
- 可调遮罩
.rnpp 插件可添加菜单命令或注册新的抽取模式;插件 SDK 构建时自动打包。
- PluginSdk
- .rnpp
- 启停 / 移除
名单、数字与座位配置以 AES-GCM 加密并带 SHA-256 校验,三副本自动恢复;配置可锁定。
- AES-GCM
- SHA-256
- PBKDF2
技术实现STACK
原生 C# / .NET 8 / WPF 桌面应用,使用系统字体、系统颜色与 WPF 默认控件样式,接近 Windows 原生对话框的观感。
- C#
- .NET 8
- WPF
托盘图标与右键菜单直接调用 Win32 Shell_NotifyIcon、
CreatePopupMenu 与 TrackPopupMenu,不依赖第三方外壳。
- Shell_NotifyIcon
- TrackPopupMenu
- 单实例
AES-GCM 加密 + SHA-256 完整性校验,主目录 / 备份目录 / 日志目录三副本自愈; 密码散列使用 PBKDF2-HMAC-SHA256。
- AES-GCM
- SHA-256
- PBKDF2
BetterRNP.PluginSdk NuGet 包 + .rnpp 自动打包;
Release 同时提供自包含版、框架依赖版与插件 SDK。
- NuGet
- .rnpp
- GitHub Releases
版本记录RELEASES
-
2026.10.17
RL-003
STABLE
v2.1.0 插件 SDK 发布
正式提供 BetterRNP.PluginSdk:插件接口、清单模型与 .rnpp 打包工具;引用 SDK 后构建即自动生成插件包,并自动排除宿主程序集。
-
2026.10.17
RL-002
RELEASE
v2.0.1 界面与主题更新
设置页与结果区改为透明背景,背景图可直接透出;图片库改成缩略图列表,新增自由裁切与拖拽选区。
-
2026.10.17
RL-001
RELEASE
v2.0.0 .NET 8 / WPF 重写版
由 Java Swing 迁移到 .NET 8 / C# / WPF:三种滚停式抽取、.rnpp 插件体系、原生 Win32 托盘菜单、更新检查与背景主题一次到位。
下载与构建DOWNLOAD
> 安装包通过 GitHub Releases 发布,「下载最新版」始终指向最新正式版。
> 自包含版内置 .NET 8 运行时(约 63 MB,解压即用);框架依赖版需预装 .NET 8 桌面运行时。
# 从源码构建(Windows + .NET 8 SDK) dotnet build BetterRNP.sln -c Release dotnet run --project src\BetterRNP\BetterRNP.csproj # 生成自包含版 / 框架依赖版 / 插件 SDK powershell -ExecutionPolicy Bypass -File tools\build-release.ps1
- RELEASES v2.1.0
- SOURCE TakaHoshino/BetterRandomNamePicker
- 插件文档 PLUGIN_SDK.md
- 示例插件 examples/
- 许可 Apache License 2.0
- 反馈 Issues
数据默认保存在程序目录:data/ 存配置、方案、主题与插件状态,
log/ 存操作日志与加密备份,plugins/ 存 .rnpp 插件;
升级程序不会覆盖这些目录。插件开发见仓库
docs/PLUGIN_SDK.md。