Phase 5: 系统托盘与开机自启
- 系统托盘: NotifyIcon 常驻, 程序化生成 32x32 图标, 左键切换显示/隐藏, 右键菜单(显示主界面/设置/彻底退出) - 窗口关闭拦截: OnClosing 取消关闭改为 Hide(), 退出菜单执行真实 Shutdown() - 开机自启: AutoStartHelper 写入/删除 HKCU\...\Run 注册表项, UI 开关按钮显示 ✔/⊗ 状态 - 静默启动: -autostart 参数下 mainWindow.Hide() 直接最小化到托盘 - 类型冲突解决: ImplicitUsings=disable + GlobalUsings.cs 统一全局 using, 消除 WPF/WinForms 共享类型冲突 - 测试: 75 tests total (含 AutoStartHelper 2 tests)
This commit is contained in:
@@ -9,7 +9,7 @@ namespace PersonalToolBox;
|
||||
/// <summary>
|
||||
/// WPF 应用程序入口,负责依赖注入容器初始化和启动主窗口
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
public partial class App : System.Windows.Application
|
||||
{
|
||||
public static IServiceProvider Services { get; private set; } = null!;
|
||||
|
||||
@@ -49,7 +49,16 @@ public partial class App : Application
|
||||
dataService.Load();
|
||||
|
||||
var mainWindow = Services.GetRequiredService<MainWindow>();
|
||||
mainWindow.Show();
|
||||
|
||||
// -autostart 参数:开机自启时隐藏窗口
|
||||
if (e.Args.Contains("-autostart", StringComparer.OrdinalIgnoreCase))
|
||||
{
|
||||
mainWindow.Hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
mainWindow.Show();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user