diff --git a/lib/common/conf.dart b/lib/common/conf.dart index 22b4a76..be30690 100644 --- a/lib/common/conf.dart +++ b/lib/common/conf.dart @@ -48,6 +48,8 @@ class AppConf { static const gameChannels = ["LIVE", "PTU", "EPTU"]; + static const appShortCutName = "SC汉化盒子${AppConf.isMSE ? "" : "DEV"}.lnk"; + static late final String applicationSupportDir; static AppVersionData? networkVersionData; diff --git a/lib/ui/about/about_ui.dart b/lib/ui/about/about_ui.dart index 145b4f2..7cd8b89 100644 --- a/lib/ui/about/about_ui.dart +++ b/lib/ui/about/about_ui.dart @@ -18,16 +18,9 @@ class AboutUI extends BaseUI { const SizedBox(height: 64), Image.asset("assets/app_logo.png", width: 128, height: 128), const SizedBox(height: 6), - if (AppConf.isMSE) - const Text( - "SC汉化盒子 V${AppConf.appVersion}", - style: TextStyle(fontSize: 18), - ) - else - const Text( - "星际公民盒子 V${AppConf.appVersion}", - style: TextStyle(fontSize: 18), - ), + const Text( + "SC汉化盒子 V${AppConf.appVersion} ${AppConf.isMSE ? "" : " +Dev"}", + style: TextStyle(fontSize: 18)), const SizedBox(height: 12), Button( onPressed: model.checkUpdate, @@ -118,8 +111,7 @@ class AboutUI extends BaseUI { ], ), onPressed: () { - launchUrlString( - "https://github.com/StarCitizenToolBox/app"); + launchUrlString("https://github.com/StarCitizenToolBox/app"); }, ), ], diff --git a/lib/ui/index_ui.dart b/lib/ui/index_ui.dart index cf5bbbd..941f455 100644 --- a/lib/ui/index_ui.dart +++ b/lib/ui/index_ui.dart @@ -32,10 +32,8 @@ class IndexUI extends BaseUI { fit: BoxFit.cover, ), const SizedBox(width: 12), - if (AppConf.isMSE) - const Text("SC汉化盒子 V${AppConf.appVersion}") - else - const Text("星际公民盒子 V${AppConf.appVersion}"), + const Text( + "SC汉化盒子 V${AppConf.appVersion} ${AppConf.isMSE ? "" : " +Dev"}") ], ), ), diff --git a/lib/ui/settings/settings_ui.dart b/lib/ui/settings/settings_ui.dart index 8fd40e6..4624f5a 100644 --- a/lib/ui/settings/settings_ui.dart +++ b/lib/ui/settings/settings_ui.dart @@ -12,7 +12,10 @@ class SettingUI extends BaseUI { margin: const EdgeInsets.all(16), child: Column( children: [ + makeSettingsItem(const Icon(FluentIcons.link, size: 20), "创建设置快捷方式", + subTitle: "在桌面创建《SC汉化盒子》快捷方式", onTap: model.addShortCut), if (AppConf.isMSE) ...[ + const SizedBox(height: 12), makeSettingsItem( const Icon(FluentIcons.reset_device, size: 20), "重置自动密码填充", subTitle: diff --git a/lib/ui/settings/settings_ui_model.dart b/lib/ui/settings/settings_ui_model.dart index 5a08fec..0de1939 100644 --- a/lib/ui/settings/settings_ui_model.dart +++ b/lib/ui/settings/settings_ui_model.dart @@ -149,4 +149,25 @@ class SettingUIModel extends BaseUIModel { reloadData(); } } + + Future addShortCut() async { + dPrint(Platform.resolvedExecutable); + final script = """ + \$targetPath = "${Platform.resolvedExecutable}"; + \$shortcutPath = [System.IO.Path]::Combine([System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::DesktopDirectory), "${AppConf.appShortCutName}"); + \$shell = New-Object -ComObject WScript.Shell + \$shortcut = \$shell.CreateShortcut(\$shortcutPath) + if (\$shortcut -eq \$null) { + Write-Host "Failed to create shortcut." + } else { + \$shortcut.TargetPath = \$targetPath + \$shortcut.Save() + Write-Host "Shortcut created successfully." + } +"""; + final r = await Process.run(SystemHelper.powershellPath, [script]); + dPrint(r.exitCode); + dPrint(r.stdout); + dPrint(r.stderr); + } }