# QuickPasterTool **Repository Path**: java-and-net/quick-paster-tool ## Basic Information - **Project Name**: QuickPasterTool - **Description**: 一款支持保存剪切板内容、快速记录笔记的工具,采用.Net 10开发 - **Primary Language**: C# - **License**: MIT - **Default Branch**: Main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-03-25 - **Last Updated**: 2026-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: 工具, Net10, Sqlite, tools ## README

QuickPasterTool

star fork

# :pray: 引用的开源项目: 1. ##### Sunny UI——Sunny UI.Net, 基于 C# .Net WinForm 开源控件库、工具类库、扩展类库、多页面开发框架。[SunnyUI.Net,GPL3.0开源协议](https://gitee.com/yhuse/SunnyUI) # :exclamation: 本项目说明: 1、二次开发本项目时请遵照MIT开源协议,SunnyUI.Net框架采用的是GPL3.0开源协议,需要用到时请务必在项目介绍加上对应声明。 2、有bug欢迎提出issue!或进行评论 3、本系统95%页面基于SunnyUI.Net控件库进行创建,在此特别声明! # :thought_balloon: 开发目的: 本软件以简洁、快、方便为宗旨,帮助用户快速记录下所需要的信息和突发的灵感,还可以通过本地加密存储的方式记录剪切板里的有用内容,在机器重启后或软件重新安装后可以快速导入、扫描已经存储的内容。支持通过 WebDAV 在多台设备之间双向合并同步,并具备在线自更新能力。 # :mag_right: 系统开发环境: 操作系统:Windows 10/11(x64) 开发工具:Microsoft Visual Studio 2022 数据库:SQLite(本地加密存储模式) 开发语言:C#语言 开发平台:.Net 开发框架:.Net 10 开发技术:.NET WinForm、SunnyUI 3.9.8 数据加密:PBKDF2-SHA256(密码哈希)+ AES-256-GCM(内容加密) # :open_file_folder: 系统结构: ```tree quick-paster-tool ├─ LICENSE ├─ logo.png ├─ QuickPaster │ ├─ AppUserControl │ │ ├─ ucClipboard.Designer.cs # 剪切板记录卡片控件 │ │ ├─ ucClipboard.cs │ │ └─ ucClipboard.resx │ ├─ Data │ │ ├─ AppPaths.cs # 数据目录/数据库文件路径 │ │ ├─ AppSettings.cs # 偏好设置(按用户 JSON 持久化到 SQLite) │ │ ├─ Crypto.cs # PBKDF2 + AES-256-GCM 加解密 │ │ ├─ Database.cs # SQLite 建库建表与增量迁移 │ │ ├─ Models.cs # User / ClipboardItem / Note 实体 │ │ ├─ Services.cs # 用户/剪切板/笔记 业务服务 │ │ ├─ SyncMerge.cs # 双向合并引擎(GUID 并集 + LWW) │ │ ├─ UiPreferences.cs # 机器级主题/最近用户偏好(ui.json) │ │ └─ UserSession.cs # 登录会话与改密码重加密 │ ├─ Forms │ │ ├─ FrmChangePassword.Designer.cs # 修改密码对话框 │ │ ├─ FrmChangePassword.cs │ │ ├─ FrmLogin.Designer.cs # 登录/注册窗体 │ │ ├─ FrmLogin.cs │ │ ├─ FrmNoteEdit.Designer.cs # 新建/编辑笔记对话框(支持插入表情) │ │ ├─ FrmNoteEdit.cs │ ├─ Pages │ │ ├─ PageClipboard.Designer.cs # 剪切板-内容管理页 │ │ ├─ PageClipboard.cs │ │ ├─ PageClipboardSettings.Designer.cs # 剪切板-剪切板设置页 │ │ ├─ PageClipboardSettings.cs │ │ ├─ PageNotes.Designer.cs # 灵感笔记-笔记管理页 │ │ ├─ PageNotes.cs │ │ ├─ PagePreferences.Designer.cs # 个人中心-偏好设置页(主题/同步/更新) │ │ ├─ PagePreferences.cs │ ├─ Properties │ │ ├─ PublishProfiles │ │ ├─ Resources.Designer.cs │ │ ├─ Resources.resx │ │ ├─ Settings.Designer.cs │ │ └─ Settings.settings │ ├─ Sync │ │ ├─ CloudSync.cs # 同步核心(下载→合并→上传) │ │ ├─ UpdateChecker.cs # 在线更新检查/下载/静默安装 │ │ └─ WebDavSyncClient.cs # 轻量 WebDAV 客户端(PUT/GET/MKCOL) │ ├─ ThemeColors.cs # 当前主题取色助手 │ ├─ ThemeManager.cs # 主题应用统一入口(内置/自定义色) │ ├─ FrmMain.Designer.cs # 主窗体(侧边导航多页面框架) │ ├─ FrmMain.cs │ ├─ FrmMain.resx │ ├─ logo.ico │ ├─ Program.cs # 入口(单实例互斥 + 登录/主界面流转) │ └─ QuickPaster.csproj ├─ installer │ ├─ QuickPaster.iss # Inno Setup 安装包脚本 │ └─ publish-update.ps1 # 一键发布新版到 WebDAV(含在线更新清单) └─ QuickPaster.sln ``` # :books: 系统功能模块汇总: | 功能汇总 | | | | | ---------- | --------- | ---------- | ---------------------------------------- | | 个人中心 | 登录/注册 | 偏好设置 | 修改密码、在线检查更新 | | 剪切板管理 | 内容管理 | 剪切板设置 | | | 灵感笔记 | 笔记管理 | | | | 数据同步 | WebDAV | 在线自更新 | 按账号分文件夹、双向合并、定时/退出同步 | **已实现功能明细:** - **个人中心** - 登录/注册:本地账号体系,密码使用 PBKDF2-SHA256 加盐哈希存储,恒定时间比较防时序攻击;单实例运行互斥 - 偏好设置:界面主题(8 种内置主题 + 自定义颜色代码/色盘取色,全局生效并持久化)、关闭最小化到托盘、开机自启(可选自启动时不打开主窗口,静默运行在系统托盘)、全局热键自定义(点击输入框按下组合键即可) - 修改密码:旧密码校验后重新派生密钥,事务内重加密全部剪切板记录与笔记 - 在线更新:检查 WebDAV 上的版本清单,发现新版本可下载并静默升级(可开关启动时自动检查) - **剪切板管理** - 内容管理:实时捕获剪切板文本并记录来源应用与时间(自动忽略上一账号遗留内容);搜索、一键复制回剪切板、收藏、单条删除、清空 - 剪切板设置:监听开关、重复内容过滤、启动/退出清空策略、最大记录条数自动清理(收藏不清理) - **灵感笔记** - 笔记管理:新建/编辑/删除/搜索(标题与内容),按更新时间排序,支持插入 emoji 表情 - **数据同步(WebDAV)** - 备份按账号存放在“服务器地址/账号名/”子文件夹,不同账号云端互不混杂 - 立即同步(推荐):下载云端 → 双向合并 → 上传结果,两侧新增数据并集保留、零丢失(剪切板按行 GUID 并集,笔记/设置按更新时间新者胜) - 自动同步:运行期间按间隔(1~60 分钟)定时合并同步,退出软件时自动同步 - 覆盖上传/覆盖恢复:整体替换模式,恢复前自动本地备份 quickpaster.pre-restore.bak - **通用** - 剪切板内容与笔记以 AES-256-GCM 加密存入 SQLite,密钥由登录密码派生、不落盘;各账号数据(含偏好设置)完全隔离 - 系统托盘(双击显示/右键菜单退出)、全局热键显示隐藏主界面 - 界面主题全局实时联动(主窗体、页面标题、卡片、导航选中色、登录窗口) # :family: 项目作者: **[codeRookie](https://gitee.com/coderokie)(本项目的灵感提供者)** **[咖啡与网络(Java&Net)](https://gitee.com/java-and-net)(开发/维护团队)** # :computer: 项目运行部署: **方式一:安装包(推荐)** 发布目录 `publish/QuickPaster-Setup-2.0.1.exe` 为 Inno Setup 安装程序(内置 .NET 10 运行时,目标设备无需安装任何框架)。双击按向导安装,自动创建桌面/开始菜单快捷方式,自带卸载器(卸载不删除用户数据)。 **方式二:源码运行** 下载并安装 Microsoft Visual Studio 2022(含 .NET 10 SDK),打开 .sln 后缀格式文件运行。或使用命令行: ```bash dotnet build QuickPaster.sln -c Release dotnet run --project QuickPaster ``` 首次启动后请先注册一个本地账号(账号密码仅保存在本机数据库中),之后每次登录即可解密查看历史记录。 # :rocket: 发布新版 / 在线更新 应用支持在线自更新:把新版安装包和 `update.json` 上传到 WebDAV 根目录,所有在线设备启动时即可收到更新提示并静默升级。一键发布(编译 + 打包 + 上传): ```powershell powershell -File installer\publish-update.ps1 -DavUrl "https://你的WebDAV地址/dav/" -DavUser "账号" -DavPass "应用密码" -Version "2.0.2" -Notes "更新说明" ``` `update.json` 格式:`{ "version": "2.0.1", "url": "QuickPaster-Setup-2.0.1.exe", "notes": "更新说明" }` ​ [![java-and-net/quick-paster-tool](https://gitee.com/java-and-net/quick-paster-tool/widgets/widget_card.svg?colors=4183c4,ffffff,ffffff,e3e9ed,666666,9b9b9b)](https://gitee.com/java-and-net/quick-paster-tool)