feat: 统一项目命名并补充路径失效报告

将内部项目目录、命名空间、配置目录、自启注册表值和设计/开发文档统一为 PersonalToolbox。

扩展路径校验服务,输出失效工具、字段、原因和路径,并在启动日志、设置页路径检查与导入配置流程中展示明细报告。

验证:dotnet build PersonalToolbox.sln
This commit is contained in:
2026-05-27 14:20:19 +08:00
parent dfc306818a
commit 26a22eef1c
32 changed files with 236 additions and 150 deletions

View File

@@ -0,0 +1,154 @@
<Window x:Class="PersonalToolbox.Views.ToolEditorWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="编辑工具"
Width="560"
Height="560"
MinWidth="520"
WindowStartupLocation="CenterOwner">
<Grid Margin="18">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="112" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="类型" VerticalAlignment="Center" />
<TextBlock x:Name="TypeTextBlock"
Grid.Column="1"
MinHeight="32"
VerticalAlignment="Center"
ToolTip="工具类型由创建入口决定,用户侧只暴露系统、本地、网址和组合。" />
<TextBlock Grid.Row="1" Text="名称" VerticalAlignment="Center" />
<TextBox x:Name="NameTextBox"
Grid.Row="1"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="卡片显示名称,建议简短清晰。" />
<TextBlock Grid.Row="2" Text="分类" VerticalAlignment="Center" />
<ComboBox x:Name="CategoryComboBox"
Grid.Row="2"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
DisplayMemberPath="Name"
SelectedValuePath="Id"
ToolTip="工具只能属于一个一级分类。" />
<TextBlock Grid.Row="3" Text="说明" VerticalAlignment="Top" Margin="0,14,0,0" />
<TextBox x:Name="DescriptionTextBox"
Grid.Row="3"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="72"
TextWrapping="Wrap"
AcceptsReturn="True"
ToolTip="用于描述这个工具的用途,会显示在卡片上。" />
<TextBlock x:Name="TargetLabel"
Grid.Row="4"
Text="目标路径"
VerticalAlignment="Center" />
<Grid x:Name="TargetPanel"
Grid.Row="4"
Grid.Column="1"
Margin="0,8,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox x:Name="TargetTextBox"
MinHeight="32"
ToolTip="本地工具路径、系统工具启动目标或网址。" />
<Button Grid.Column="1"
Content="文件"
Width="64"
Margin="8,0,0,0"
ToolTip="选择本地程序、快捷方式、脚本或普通文件。"
Click="BrowseFileButton_OnClick" />
<Button Grid.Column="2"
Content="文件夹"
Width="72"
Margin="8,0,0,0"
ToolTip="选择一个文件夹作为本地工具。"
Click="BrowseFolderButton_OnClick" />
</Grid>
<TextBlock Grid.Row="5" Text="启动参数" VerticalAlignment="Center" />
<TextBox x:Name="ArgumentsTextBox"
Grid.Row="5"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="传给可执行文件或脚本的参数,普通文件和文件夹通常不需要。" />
<TextBlock Grid.Row="6" Text="工作目录" VerticalAlignment="Center" />
<TextBox x:Name="WorkingDirectoryTextBox"
Grid.Row="6"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="可执行文件或脚本启动时使用的工作目录,可留空。" />
<TextBlock Grid.Row="7" Text="快捷键" VerticalAlignment="Center" />
<TextBox x:Name="HotkeyTextBox"
Grid.Row="7"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="格式示例Ctrl + Alt + T。第一版要求至少包含一个修饰键。" />
<StackPanel Grid.Row="8"
Grid.Column="1"
Margin="0,12,0,0">
<CheckBox x:Name="AutoRunCheckBox"
Content="工具箱启动时自动运行"
ToolTip="开启后会出现在设置页的自动运行列表中。" />
<CheckBox x:Name="RunAsAdminCheckBox"
Content="以管理员身份运行"
Margin="0,8,0,0"
ToolTip="仅启动该工具时触发 UAC工具箱自身不提权。" />
</StackPanel>
</Grid>
</ScrollViewer>
<StackPanel Grid.Row="1"
Orientation="Horizontal"
HorizontalAlignment="Right"
Margin="0,14,0,0">
<Button Content="保存"
Width="88"
Margin="0,0,8,0"
IsDefault="True"
ToolTip="校验并保存工具设置。"
Click="SaveButton_OnClick" />
<Button Content="取消"
Width="88"
IsCancel="True"
ToolTip="放弃本次修改。"
Click="CancelButton_OnClick" />
</StackPanel>
</Grid>
</Window>