Skip to content

Releases: SuGar0218/PreLaunchTaskr

第一个正式版

17 Apr 15:10
f53674d

Choose a tag to compare

WinUI 3 版本

开始使用

下载并解压,打开里面的 GUI 程序。

如果您使用的是 Windows 10 1909 (18362) 或更新版本,且是 64 位操作系统,可以使用 WinUI 3 版本,它界面更美观,并且未来更有可能增加新功能。(需要安装 Windows App SDK 运行环境,如需安装,会在启动时询问)

如果您使用的是 Windows 7 或更高版本,可以使用 WPF 版本,WPF 版本在 Windows 7 上有 Aero 效果。(需要安装 .NET 6 运行环境,如需安装,会在启动时询问)

  • PreLaunchTask.Launcher.GUI.WinUI3.exe
  • PreLaunchTask.Launcher.GUI.WPF.exe

此项目的前身

https://github.com/SuGar0218/winui3-parameter-launcher

目前已知的缺陷

  • 在对某个程序的设置页中,切换设置项时,程序可能崩溃,并报错“Cannot change ObservableCollection during a CollectionChanged event”。
  • 启动器(PreLaunchTask.Launcher.NETx.exe)会一直在后台,直到由它启动的程序结束。这是因为,目前的做法是,启动器在启动程序后,会为了确定其退出状态码而一直等待启动的程序结束。当需要更新或删除的时候,会提示被占用。
  • 绕过配置器(PreLaunchTask.Configurator.NETx.exe)设置的映像劫持,用的方法是在程序所在位置创建不同名称的符号链接。某些依赖自身文件名和校验自身目录的程序会不能正常使用。未来会考虑用 Windows API 解决这一问题。
  • 不能对商店应用设置。因为没有权限更改商店应用程序目录,所以无法创建符号链接。
  • 启动功能依赖于启动器(PreLaunchTask.Launcher.NETx.exe)所在位置。注册表中的映像劫持会指向设置时的启动器位置,因此如果您不小心移动或删除启动器,会无法启动程序,但是可以在 GUI 程序中关闭或删除来取消配置,这样就可以恢复了。
  • settings.sqlite 是存储您对指定程序的配置的文件,如果不小心删了,没有恢复能力,程序不会从注册表读取来恢复已配置的程序列表。如果要取消配置程序,只能通过注册表删除您之前配置的程序的映像劫持。

典型使用场景

虽然可以通过快捷方式增加启动参数,但当被其他应用打开时,就不会包含我们需要的启动参数。

  • 基于 Chromium 的程序,当 Windows 10 或更高版本中单独设置了文字缩放时,整个窗口会比系统显示缩放大得多,因此需要启动时附加参数来指定缩放程度。

  • Chrome、Edge 浏览器,对多声道的支持似乎不是很好,但可以通过启动参数来使它在多个喇叭放出声音。

  • 基于 QT 的程序,不是所有程序都正确处理了系统显示缩放。但好像它只能通过 QT_SCALE_FACTOR 环境变量来指定缩放程度,会影响多个 QT 程序。此程序可以对单个程序设置专属环境变量。