# Calendar plugin **Repository Path**: 58753101/calendar-plugin ## Basic Information - **Project Name**: Calendar plugin - **Description**: win11时间插件 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-20 - **Last Updated**: 2026-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Calendar Plugin 一个面向 Windows 10 / Windows 11 的桌面日历工具。 项目不注入 Explorer,而是使用一个不抢焦点的轻量覆盖窗口替换任务栏右侧时钟。当前版本同时提供系统托盘入口、日历弹窗、农历、节假日、单实例唤醒、开机启动和主界面透明度调节。 ## 当前发布目录 ```text publish\win-x64\CalendarPlugin.exe ``` ## 使用方式 直接运行: ```text publish\win-x64\CalendarPlugin.exe ``` 运行后应用会进入系统托盘,并默认替换任务栏右侧时钟。左键点击替换后的时钟或托盘图标可打开日历,右键点击替换后的时钟可打开应用菜单,在菜单中可以打开设置、暂停覆盖或退出程序。也可以使用命令唤醒已运行实例: ```text CalendarPlugin.exe --show-calendar ``` ## 功能 - 月历视图,支持上个月、下个月、回到今天。 - 主界面显示当前时间,精确到秒。 - 显示公历、农历、常见传统节日。 - 显示中国大陆法定节假日休息日和调休上班日。 - 系统托盘图标显示日期。 - 替换任务栏右侧系统时钟,显示时、分、秒、日期和星期。 - Win10 使用原生时钟窗口边界,Win11 使用 UI Automation 精确定位 XAML 时钟区域。 - 设置界面可随时关闭任务栏时钟替换,并立即恢复系统原时钟。 - 全屏游戏或演示期间自动隐藏覆盖时钟。 - 响应深浅色、强调色、DPI 和分辨率变化,并在 Explorer 重启后重新定位。 - 支持顶部及左右侧任务栏;左右侧使用适合窄任务栏的三行布局。 - 监听前台窗口切换并即时恢复覆盖层 z-order,不把窗口生命周期绑定到 Explorer。 - 合并处理 Explorer 任务栏缩略图的显示、隐藏、重排和选择事件,稳定双窗口预览切换。 - 预览事件后在约 200 ms 的短窗口内按帧恢复层级,覆盖 Explorer 延迟提交的 z-order 变化。 - 覆盖时钟和托盘图标共享右键菜单,可暂停覆盖或主动退出程序。 - 检测到任务栏自动隐藏时暂停覆盖,关闭自动隐藏后自动恢复,避免遮挡屏幕边缘和收起动画。 - 支持单实例运行和命令行唤醒日历。 - 主界面和托盘菜单提供设置入口。 - 设置界面支持开机启动设置和打开节假日数据文件。 - 主日历界面提供透明度滑动条。 ## 实现说明 - 已删除 Windhawk 本地模块源码。 - 不使用 Explorer/SystemTray/ClockButton hook,不修改系统文件。 - “替换”是覆盖系统时钟区域的视觉替换;关闭程序或设置开关后,系统原时钟立即可见。 - 当前替换主显示器任务栏的时钟;多显示器的次任务栏暂不覆盖。 ## Win10 兼容 项目目标平台: ```text net9.0-windows10.0.17763.0 ``` 发布包使用 `win-x64` 自包含单文件发布,目标是 Windows 10 1809 及更新版本、Windows 11。 ## 节假日数据 节假日和调休数据位于: ```text Data\cn-holidays.json ``` 发布后对应路径为: ```text publish\win-x64\Data\cn-holidays.json ``` ## 开发 构建: ```powershell dotnet build -c Release ``` 发布: ```powershell dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true -o publish\win-x64 ```