允许微软应用商店使用本地代理

UWP 应用默认不允许访问本地 localhost 地址。微软应用商店也属于 UWP 应用,如果 Windows 开启了系统代理,且代理服务器是地址是 localhost 的话,微软应用商店就无法联网。而每次启动微软应用商店就要关闭系统代理会非常麻烦。

通过下面的命令可以允许微软应用商店访问本地代理:

……

获取 Windows 系统默认字体和对应的字体文件

自 Windows Vista 和 Windows Server 2008 开始,操作系统界面默认的字体为 Segoe UI ,而 Windows XP 及之前的系统界面默认字体为 Tahoma 。不过 Segoe UI 字体的字形并不包含包括汉字在内的东亚文字。中文版 Windows 使用微软雅黑作为默认中文字体。

其他语言的默认字体见下表:

语言字体
简体中文Microsoft YaHei UI
繁体中文Microsoft JhengHei UI
日文Yu Gothic UI
韩文Malgun Gothic
希伯来文Gisha
泰文Leelawadee

不过相较于查表获取 Windows 系统的默认字体,使用 Windows API 来获取当前系统的默认字体会更加可靠。

……

Fournoas 分享《This weird Windows 11 bug drastically speeds up File Explorer》:

按 F11 全屏再恢复 Windows 资源管理器窗口,能显著提速。多方验证,真实可信,原因未知,非常神奇。

用 RunDLL32.exe 命令实现 xdg-open

xdg-open 是 Linux 下的一个命令,可以调用对应的程序来打开目标文件,等同于在文件管理器中双击打开该文件。Ubuntu 用户可以通过执行 sudo apt install xdg-utils -y 来安装 xdg-open 命令,这个命令的用法也很简单:

xdg-open { file | URL }

遗憾的是, Windows 系统并没用提供类似的命令,不过我们可以通过 Windows 自带的 rundll32.exe 命令来实现一个类似功能的脚本。

RunDLL32.exe 用来加载指定的 DLL 文件并调用指定的导出函数。用法如下:

……

用 Dnspooh 自建安全 DNS 服务器

Dnspooh 是一款使用 Python 开发的开源 DNS 代理/中继,支持 DoH 和 DoT 协议。用户可以将 Dnspooh 部署在本地,借助它可以让不支持 DoH 和 DoT 协议的客户端应用或操作系统使用安全的 DNS 服务,从而避免被运营商或网管之类的中间人劫持或嗅探。

除此之外, Dnspooh 还支持可插拔中间件用于扩展软件功能。 Dnspooh 内置了几个比较有用的中间件:缓存中间件用于加速访问;黑名单中间件用于屏蔽域名和 IP 地址; Hosts 中间件用于自定义解析结果;日志中间件用于记录解析记录、监控应用行为;规则中间件提供更加灵活复杂的操作。

……

Fournoas 说:

Edge浏览器更新后,地址栏右侧会出现一个很恶心的“发现”按钮,在命令行中运行下面命令(或者直接快捷键 WIN+R 运行),然后重启浏览器就可以禁用这个按钮了:

powershellREG ADD HKLM\Software\Policies\Microsoft\Edge /v HubsSidebarEnabled /t REG_DWORD /d 0
发送 Ctrl+C 事件终止 Windows 控制台进程

偶然在 Nuitka 的代码中发现一个未被触发的 BUG 。问题代码位于 OnefileBootstrap.c 的 cleanupChildProcess() 函数中。这段代码中第 654 行的 GenerateConsoleCtrlEvent() 总是返回 FALSE ,导致子进程无法收到 CTRL-C 信号。不过由于 Nuitka 的代码中只有 cleanupChildProcess(false) 调用,因此这个 BUG 正常情况下不会被触发。不幸的是,本人 fork 了 Nuitka 的项目 Nuitka-winsvc 正好触发了这个 BUG 。Nuitka-winsvc 为 Nuitka 增加了编译为 Windows 服务的选项。当停止服务时,需要向子进程发送 CTRL-C 信号来优雅结束子进程

删除 Windows 10 内置应用

以 Win 10 内置应用 XboxGameCallableUI 为例。在 PowerShell 命令行中执行:

powershellget-appxpackage *XboxGameCallableUI*

可以看到返回如下信息:

Name              : Microsoft.XboxGameCallableUI
Publisher         : CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : Neutral
ResourceId        : neutral
Version           : 1000.19041.1023.0
PackageFullName   : Microsoft.XboxGameCallableUI_1000.19041.1023.0_neutral_neutral_cw5n1h2txyewy
InstallLocation   : C:\Windows\SystemApps\Microsoft.XboxGameCallableUI_cw5n1h2txyewy
PublisherId       : cw5n1h2txyewy
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : True
IsPartiallyStaged : False
SignatureKind     : System

其中 NonRemovable 的值为 True,这意味着如果我们直接用 get-appxpackage *XboxGameCallableUI* | remove-appxpackage 命令是无法删除该 package 的。

必须需要修改系统配置才能实现删除内置应用。在一切开始前,我们需要准备如下工具:

……

如何修改「OneDrive - Personal」文件夹名称

新版本OneDrive会自动覆盖注册表设置,此方法已不再适用。

微软 OneDrive 分为企业版和个人版。先前都统一显示为「OneDrive」,但是在某次系统升级后,个人版会加上后缀,变成了一个超级长的名字:

onedrive

通过修改注册表可以去掉这个后缀。运行 regedit.exe 打开注册表编辑器,定位到 HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6} 分支,右键新建字符串值,键值名称为 LocalizedString,值为 OneDrive,当然也可以修改成自己喜欢的名称。

……

Windows Shell Folder

什么是 Windows Shell

Windows Shell 是 Windows 操作系统的用户界面。具体地说,用户在登录后看到的桌面、开始菜单、任务栏,以及打开资源管理器看到的操作界面都属于 Windows Shell 的一部分。Windows Shell 实现了一套树形组织结构,称作 Shell Namespace。它包含两种基础对象,即「文件」和「文件夹」, 「桌面」是 Shell Namespace 的根对象。

文件夹是 Shell Namespace 树中的节点和容器,它可以包含子文件夹对象和文件对象。Shell Namespace 中的对象可以表示文件系统对象,也可以是虚拟对象,例如,控制面板、回收站、我的电脑(此电脑)、桌面、网络等对象。这些特殊的虚拟文件夹称作 Shell Folder。

……