软件使用技巧

配置 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 条,并且在每次系统关机时写入注册表作为持久化保存。正是由于这个特性,导致泄露了用户程序执行记录。

……

泄露 Windows 资源管理器浏览记录的 Shell Bags

Windows 资源管理器会记住用户访问过的每个文件夹的视图细节,包括窗口大小、视图模式、排序方式、图标大小、分组依据等。这个特性有点类似 macOS 系统里的 .DS_store 文件夹。这些文件夹的视图信息会被保存在注册表中,我们根据微软对这组注册表项的命名,将该特性称作 Shell Bags。一些 Windows 取证工具利用该特性,可以提取出用户的访问历史,包括已删除的文件夹、网络文件夹和可移动存储设备文件夹。

……

为什么你总是会在微信里发错消息

最近,江苏常州的一个镇党委书记被免职。事件的起因是这位龚书记将私密消息错误发送到了微信工作群里。

龚书记

这已经不是第一起因为用户将私密消息错发到微信群里而酿成的惨案了。而此类惨案之所以层出不穷,完全是因为微信产品设计上的「坏」和「蠢」。

首先,在 iOS 平台上,点击微信的通知消息,在打开微信 APP 后,并不会进入通知消息所在的会话上下文,而是停留在之前的会话或会话列表。这并非操作系统的限制,而是微信产品故意为之,亦或者是它们根本不在乎。

……