软件使用技巧

关闭指定程序的 UAC 通知

在启动某些 Windows 程序时会弹出 UAC (用户账户控制)确认窗口,这表示该程序需要管理员权限来运行。用户可以选择批准或拒绝。

运行 Listary 每次都要弹出 UAC 通知

运行 Listary 每次都要弹出 UAC 通知

以管理员身份运行 Everything

以管理员身份运行 Everything

用户可以通过控制面板 > 系统和安全 > 更改用户帐户控制设置来更改 UAC 的行为。将滑块移动到从不通知便可以全局关闭系统 UAC 通知。Windows 并没有提供 UAC 通知的白名单功能。

……

标准 Windows 字体

标注 * 的为推荐字体。

Font NameWinXPVistaWin7Win8
Monospaced Fonts
Consolasxxx
Courier *xxxx
Courier New *xxxx
Lucida Console *xxxx
Symbol Fonts
Cambria Mathxxx
Marlettxxxx
Segoe UI Symbolxx
Symbolxxxx
Webdingsxxxx
Wingdingsxxxx
Proportional Fonts
Arial *xxxx
Arial Blackxxxx
Calibrixxx
Cambriaxxx
Candaraxxx
Comic Sans MSxxxx
Constantiaxxx
Corbelxxx
Estrangelo Edessaxxxx
Franklin Gothic Mediumxxxx
Gabriolaxx
Gautamixxxx
Georgiaxxxx
Impactxxxx
Lathaxxxx
Lucida Sans Unicodexxxx
Modernxxxx
MS Sans Serif *xxxx
MS Serif *xxxx
MV Bolixxxx
Myanmar Textx
Nyalaxxx
Palatino Linotypexxxx
Plantagenet Cherokeexxx
Romanxxxx
Scriptxxxx
Segoe Printxxx
Segoe Scriptxxx
Segoe UI *xxx
Small Fontsxxxx
Sylfaenxxxx
Tahoma *xxxx
Times New Roman *xxxx
Trebuchet MSxxxx
Tungaxxxx
Verdanaxxxx
配置 PowerShell PSReadLine 模块

PowerShell 的 PSReadLine 模块提供类似 GNU Readline 的功能,包括命令行编辑、历史记录管理、语法高亮、智能提示和多行输入支持,以增强 PowerShell 命令行的交互体验。

无论是 Windows 10/11 自带的 PowerShell 5.x 版本,或是最新的 PowerShell 7.x 版本,都已自带 PSReadLine 模块。可以使用如下命令查看是否已加载该模块:

powershellGet-Module PSReadLine

正常会输出 PSReadLine 版本等信息。如果没有输出内容,则需要手动导入模块:

……

禁用 Windows 系统热键

Windows 中存在大量与 Win 组合使用的全局热键。比如 Win + E 打开资源管理器、Win + R 打开运行对话框、Win + D 最小化所有桌面窗口、Win + Tab 显示任务视图,等等。几乎所有 Win 与单一按键的组合都被系统占用了,而通常用户日常使用的系统热键只占其中很少一部分。如果能禁用(释放)一些 Windows 系统热键,以供其他软件使用,想来也是甚好。

……

热修复 Scoop 的 GIMP 3.0 安装脚本错误

Windows 包管理器 Scoop 上的 GIMP 3.0 已经发布一周多了,期间已经推送了三个版本。然而官方的安装脚本存在错误,导致用户无法正确安装,至今仍未解决。目前 GIMP 3.0 的安装配置主要存在两个问题:

  1. 软件安装包解压缩失败
  2. 安装脚本中的文件路径不正确

问题一只要将 Scoop 默认的 innounp 卸载并替换成 innounp-unicode 就行了:

powershellscoop uninstall innounp 
scoop install versions/innounp-unicode

问题二的错误信息如下:

……

记一次 WinGet 升级故障排查

本文记录一次 WinGet 升级故障排查的过程。最终删除了 Windows 应用商店安装的版本,再使用 Scoop 重新安装,通过这种方式解决了问题。

用 Dufs 搭建简易网盘

需要在老破小 VPS 上部署一个简单的网盘服务。由于服务器配置很低,程序越小巧越好。具体需求如下:

  • 单一可执行文件
  • 不依赖外部组件
  • 配置简单
  • 支持 WebDAV

找到两个符合要求的开源项目,分别是 Go 语言编写的 webdav,以及 Rust 语言编写的 dufs。后者除了支持 WebDAV 以外,还提供了一个网页管理界面。因此最后决定选择 dufs

……

已安装 .NET 运行时,但程序仍提示未安装

运行一个 C# 编写的程序,弹出如下提示:

dotnet

实际上系统已经安装 .NET Runtime 8.0,不过还是尝试通过错误消息中的链接下载 .NET Desktop Runtime 8.0 并重新安装。再次运行程序,仍然提示以上错误。

……

一些命令行下的文件管理工具

本文介绍了 12 款命令行下的文件管理工具

泄露程序执行记录的 Windows Shim 缓存

Windows Shim 是一种让新操作系统能兼容旧程序的技术。顾名思义,Shim 会在应用程序和操作系统之间增加一层处理逻辑,比如拦截和修改 API 调用的参数和返回值,模拟旧的操作系统,实现兼容应用程序的目的。

由于并非所有的程序都需要进行兼容处理,Windows 为此提供了一个名为 Application Compatibility Database (应用程序兼容性数据库)的数据库,通常简写为 SDB,其中保存了需要兼容的程序清单,以及需要进行的兼容性操作。然而,每次创建进程都要查询数据库会损耗性能,Windows 将查询结果缓存在内存中。该缓存被称作 Application Compatibility Cache,大小为 1024 条,并且在每次系统关机时写入注册表作为持久化保存。正是由于这个特性,导致泄露了用户程序执行记录。

……