新增工具/组合随软件启动自动运行功能

- ToolItem 模型新增 AutoRunOnStart 属性,持久化到配置文件
- App.OnStartup 启动后自动执行标记为自启动的工具/组合(间隔500ms)
- 工具编辑窗口和组合编辑窗口新增「随软件启动自动运行」CheckBox
- 主界面工具卡片左上角 Rocket 角标标识已启用自启的项目
This commit is contained in:
2026-05-10 02:51:29 +08:00
parent 85919381b1
commit b715904439
8 changed files with 82 additions and 8 deletions

View File

@@ -43,6 +43,9 @@ public partial class ToolEditViewModel : ObservableObject
[ObservableProperty]
private IconProvider.IconOption? _selectedIcon;
[ObservableProperty]
private bool _autoRunOnStart;
/// <summary>
/// 分类下拉列表
/// </summary>
@@ -87,6 +90,7 @@ public partial class ToolEditViewModel : ObservableObject
Arguments = toolToEdit.Arguments;
HotKey = toolToEdit.HotKey;
SelectedCategory = Categories.FirstOrDefault(c => c.Id == toolToEdit.CategoryId);
AutoRunOnStart = toolToEdit.AutoRunOnStart;
if (!string.IsNullOrEmpty(toolToEdit.IconCode))
{
@@ -149,6 +153,7 @@ public partial class ToolEditViewModel : ObservableObject
_editingTool.HotKey = HotKey.Trim();
_editingTool.CategoryId = SelectedCategory?.Id ?? string.Empty;
_editingTool.IsValid = IsExecutablePathValid(ExecutablePath.Trim());
_editingTool.AutoRunOnStart = AutoRunOnStart;
_logService.Info($"已更新工具: {Name.Trim()}");
}
@@ -163,7 +168,8 @@ public partial class ToolEditViewModel : ObservableObject
Arguments = Arguments.Trim(),
HotKey = HotKey.Trim(),
CategoryId = SelectedCategory?.Id ?? string.Empty,
IsValid = IsExecutablePathValid(ExecutablePath.Trim())
IsValid = IsExecutablePathValid(ExecutablePath.Trim()),
AutoRunOnStart = AutoRunOnStart
};
_dataService.Config.Tools.Add(newTool);