Handy Tips for Solving Windows & Software Issues

Handy Tips for Solving Windows & Software Issues

Astrid Stark Lv. ∞

我们在使用Windows系统和各种软件的过程中,经常会遇到一些操作失误、性能优化难题以及功能异常等问题。这篇文章汇总了一系列实用的技巧,帮助快速解决常见问题,同时提升系统与软件的使用体验。

npm 下载 Electron 报错

在创建一个 Electron 项目的开始,可能会遇到下载安装 Electron 依赖出现问题的情况,无法安装,甚至在进行修改 npm 镜像为淘宝源、添加 npm config 网络代理配置的操作后,仍然无法下载和安装。

在终端输入以下命令修改 npm 配置文件:

1
npm config edit

打开 .npmrc 文件后,在文件中修改镜像源为官方源:

1
registry=https://registry.npmmirror.com/

在文件中添加如下内容:

1
2
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/
electron_mirror=https://cdn.npmmirror.com/binaries/electron/

然后关闭该窗口,重启命令行,删除 node_modules 文件夹,并执行以下命令清除 npm 缓存:

1
npm cache clean --force

再重新安装依赖:

重新安装 Electron

Google 服务提取网站图标

Google 提供了一项免费的服务,可用于快速提取任意网站的图标。这一服务可以通过指定目标网站的域名,返回其 favicon 图标。URL 格式如下:

1
https://www.google.com/s2/favicons?sz=64&domain=example.com

sz 参数:获取指定大小的网站图标

domain 参数:指定需要获取的网站域名

例如,在浏览器地址栏输入 https://www.google.com/s2/favicons?sz=64&domain=google.com 就可以获得 Google 的网站图标:

Google 网站图标

此操作也可以用在前端或后端代码中,用来动态获取指定网站的图标。

管理员权限失效

在删除文件的时候,发现就算打开终端并调用管理员权限仍无法删除:

终端管理员无法删除文件

使用 PowerShell 并调用管理员权限也无法删除:

Powershell 管理员无法删除文件

修改文件属性报错:

文件应用属性时出错

对注册表进行修改:将目录HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System下EnableLUA的值改为0,重启后即可对文件进行操作。

EnableLUA

原理是禁用了 Windows 的用户帐户控制功能(UAC)。UAC 是一种安全机制,旨在防止未经授权的更改被应用到系统上。

导致这个问题的原因可能是在某次在清理注册表时,误删除了一个 CLSID(类标识符)相关注册表项。如果在清理注册表时误删了这些关键项,可能会导致:

  1. Windows 无法正确解析权限提升请求,即便以管理员身份运行,仍然无法操作受限文件。
  2. UAC 机制异常,导致权限判断逻辑出错,即使是管理员账户也被当作普通用户处理。
  3. explorer.exe、CMD、PowerShell 权限控制失效,导致某些操作权限丢失。

以上解决办法仅为权宜之计,电脑再次重启时仍会恢复 UAC 控制。如果出现这种情况,建议重新安装系统来避免更大的问题出现。

Thunderbird 绑定邮箱服务

由于各种原因,我们平常总会使用不止一个邮箱账户来接收邮件,但如果每次查看邮件都要访问各邮件系统对应的网站或 APP 未免有些麻烦,因此我们可以将所有邮箱添加到 Thunderbird(Mozilla 公司开发的邮件管理系统)来实现邮件的统一查看。

对于 Gmail / Outlook / Yahoo Mail 等邮件系统,直接输入相应邮件地址和密码即可添加:

添加电子邮件地址

对于 QQ 邮箱等,如果经过密码尝试无法添加或获取登录信息,则说明邮箱需要进行多次验证。

在网页端登录 QQ 邮箱,打开设置,在账号部分找到如下内容:

QQ 邮箱获取授权码

选择打开服务,扫码,并根据步骤指南继续获得授权码。

一个授权码只能被查看和使用一次,因此请妥善保管。

获得授权码后,在 Thunderbird 添加账户时的密码部分填写授权码即可。

对于校园邮箱,则需要访问相应网址获取邮件系统的收发服务器。

以哈工大电子邮件系统为例:

哈工大电子邮件系统收发服务器及对应端口

只需在 Thunderbird 中添加账户时手动选择服务器设置并输入学校网站提供的收发服务器地址及端口即可。

服务器设置

家庭版 Windows 系统添加组策略管理器

新建文本文档,输入以下内容后另存为 .bat 文件,然后使用管理员身份运行:

1
2
3
4
5
6
@echo off
pushd "%~dp0"
dir /b %systemroot%\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >gp.txt
dir /b %systemroot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>gp.txt
for /f %%i in ('findstr /i . gp.txt 2^>nul') do dism /online /norestart /add-package:"%systemroot%\servicing\Packages\%%i"
pause

运行结果如图:

部署组策略管理器

等待下载完成后,Win + R 输入 gpedit.msc 测试是否成功:

已添加本地组策略管理器

Word 在试图打开文件时遇到错误

有时,在下载来自网络的 .docx 文档后,由于 Word 的安全设置,无法打开文件,此时需要在 Word 的设置中取消对此项的审查。

在 Word 中进入选项,点击左侧的“信任中心”,然后选择右侧的“信任中心设置”:

Word 选项

进入信任中心后,点击左侧的“受保护视图选项卡”,并取消勾选第一个选项“为来自 Internet 的文件启用受保护的视图”:

信任中心

点击“确定”后退出,即可打开来自网络的文件。

环境变量 Path 无法分行显示

在配置环境变量时,有时会遇到 Path 无法分行显示的问题:

Path 无法分行显示

一般来讲,导致问题的原因是在 Path 开头使用了以相对路径表示的环境变量(如图中的 %JAVA_HOME%)。

将这一条导致问题的环境变量移动到后边,或者将下一条环境变量移动到开头即可解决问题。

Path 恢复分行显示

删除文件默认打开方式

有时候,一个特殊类型的文件误使用错误的打开方式打开,它的图标就会变成所使用的软件的图标,并且鼠标左键双击也是通过这个错误的方式打开。这时,我们就需要将文件的默认打开方式清空,变回未知。

在 Windows 系统中,文件的默认打开方式通过多个注册表项来管理,特别是以下三个关键注册表路径:

  • HKEY_CLASSES_ROOT\<扩展名>\OpenWithList
    该路径下存储的是系统范围内为特定文件扩展名所设置的可用程序列表。它列出了所有能够打开该类型文件的程序,并决定了文件右键点击时的“打开方式”菜单中的程序列表。这并不决定文件的默认打开方式,而是用于提供可选程序的列表。
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<扩展名>\OpenWithList
    记录当前用户在该文件类型上的历史打开记录。也就是说,它记录了当前用户最常使用的程序来打开该类型文件。当你右键一个文件并选择“打开方式”时,Windows 会显示最近使用的程序。
    同样,它并不会直接决定文件的默认打开方式,而只是影响右键菜单中的“最近使用的程序”列表。
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<扩展名>\UserChoice
    这是最关键的注册表项,它决定了当前用户对该文件类型的默认打开方式。它存储了一个 ProgId 和一个哈希值,用于指定默认的程序打开该文件。
    如果这个键存在,它将覆盖其他设置,强制文件通过指定的程序打开。

若想清除文件的默认打开方式,我们主要需要删除 UserChoice 键。清除后,Windows 会恢复至系统默认的打开方式,或者提示你重新选择应用程序。在注册表编辑器中找到相应注册表路径删除即可。

在操作前,建议备份注册表,以防万一。

也可以使用 PowerShell 一键删除这些注册表项,恢复文件的默认打开方式。以下是用于清除 .pdf 文件默认关联的 PowerShell 脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 删除特定文件类型的注册表项(例如 .pdf)
$extension = ".pdf"

# 删除 `UserChoice` 键(关键项)
Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$extension\UserChoice" -Force

# 删除当前用户下的 `OpenWithList` 键(移除最近使用的程序列表)
Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$extension\OpenWithList" -Force

# 删除系统级别的 `OpenWithList` 键(系统级别的打开方式列表)
Remove-Item -Path "HKCR:\.$extension\OpenWithList" -Force

# 重启资源管理器
Stop-Process -Name explorer -Force
Start-Process explorer

将以上代码复制粘贴到记事本中,另存为 .ps1 文件并执行即可。

最后,重启文件资源管理器,发现指定扩展名的文件的打开方式已经变回了未知。

如果仍不起作用,可以先备份注册表,再直接删除 HKEY_CLASSES_ROOT\<扩展名> 和 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<扩展名> 两个文件夹,然后重启文件资源管理器。

开机 NumLock 键默认关闭

有的电脑开机时,每次都要按一下 NumLock 键才能通过小键盘输入数字,可以设定为开机默认打开 NumLock 键。

Win + R 输入 regedit 打开注册表编辑器,在路径 计算机\HKEY_USERS\.DEFAULT\Control Panel\Keyboard 中,修改 InitialKeyboardIndicators 项的值为 2 即可。

InitialKeyboardIndicators = 0 表示关闭全部指示仪

InitialKeyboardIndicators = 1 表示开启 Caps Lock(大写锁定)

InitialKeyboardIndicators = 2 表示开启 Num Lock(数字锁定)

InitialKeyboardIndicators = 4 表示开启 Scroll Lock(滚动锁定)

InitialKeyboardIndicators 项的默认值为 2147483648

设置完成后重启电脑。

如果上述操作不生效,则需启动时进入 BIOS 进行设置。

Markdown 嵌入视频链接

在 .md 文档中可以使用 HTML 语法嵌入视频。

本地视频需要使用 <video> 内嵌套 <source> 标签嵌入视频地址:

1
2
3
<video controls width="100%">
<source src="C:\Users\lenovo\Videos\test-video.mp4" type="video/mp4">
</video>

效果图:

本地视频展示效果

Bilibili 视频需要使用 <iframe> 标签嵌入视频地址:

1
<iframe src="https://player.bilibili.com/player.html?bvid=BV1diUDYcEur" width="1280px" height="720px" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>

效果图:

B站视频展示效果

YouTube 视频同样需要使用 <iframe> 标签嵌入视频地址,但其中的 src 参数需要修改为 https://www.youtube.com/embed/xxx 的形式:

1
2
<iframe src="https://www.youtube.com/embed/YZjd5iM2v9o" width="1280" height="720" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>
</iframe>

效果图:

油管视频展示效果

WinGet 批量更新软件

我们在使用电脑时经常会安装很多软件,但如果想要让软件都保持最新版本,又不想使用第三方应用商店管理,就可以使用系统自带的 WinGet 工具进行批量更新。

输入以下命令获取有新版本的软件列表:

1
winget upgrade

软件更新列表

输入以下命令以更新指定软件:

1
winget upgrade <software.id.01> <software.id.02>

更新软件

如果想批量更新所有软件,输入以下命令:

1
winget upgrade --all

WinGet 的核心数据来源于 Microsoft 维护的官方软件仓库。这个仓库包含了大量常见软件的元数据,当用户运行 winget upgrade 时,WinGet 会从该仓库中获取最新的软件版本信息,并与本地已安装的软件进行对比,从而判断是否需要更新。

需要注意的是,使用 WinGet 工具更新并不区分软件的正式版和 Beta 版本等渠道。如果想指定渠道更新软件,需要通过在命令后添加--channel 参数来选择对应的频道。

Windows 开发者选项功能

在 Windows 开发者选项中,有很多正式版系统没有实装但非常有用的功能。

开发者选项

启用“结束任务”功能允许用户在任务栏右键点击图标结束任务,相当于在任务管理器结束相应任务。

结束任务

启用 sudo 允许用户像在 Linux 系统中一样直接以管理员权限运行指定命令。在没有 sudo 命令时,Windows 系统只能通过以管理员身份运行 CMD 或 Powershell,或者在 CMD 中使用 runas /user:Administrator "command" 命令来调用管理员权限。

在“配置 sudo 如何运行应用程序”设置中,Windows 提供了三种方式:在新窗口中、禁用输入和内联。如果选择“在新窗口中”设置,运行 sudo 命令时会打开一个新的窗口来执行该命令;选择“禁用输入”设置会禁止用户输入,无法进行交互;选择“内联”设置,则会在当前窗口中以管理员权限运行命令,并允许交互。“内联”设置最符合 Linux 系统中的用户使用习惯。

sudo 命令

sudo 命令执行示例

右键新建文件类型配置

我们在写代码或文档时,经常需要新建一个空白文件,但打开软件后再新建文件却又显得很麻烦,于是可以通过修改注册表的方式实现在桌面新建空白文件。

以 Markdown 文件为例:

首先安装 Typora 或 Visual Studio Code。

Win + R 输入 regedit 打开注册表编辑器,在 计算机\HKEY_CLASSES_ROOT 下找到 .md 项。

注册表编辑器

如果没有找到 .md 项,一定先安装 Typora 或 Visual Studio Code 并创建一个 Markdown 文件再进行接下来的操作。

在 .md 项下新建 Content Type 和 PerceivedType 两个字符串值。

注册表 .md 项

给 (Default) 赋默认值 Typora.md 或 VScode.md。

(Default) 默认值

给 Content Type 赋值 text/markdown。

Content Type 默认值

给 PerceivedType 赋值 text。

PerceivedType 默认值

在 .md 下新建项 ShellNew,并在 ShellNew 下新建字符串值 NullFile。

新建空文件

回到桌面,就能新建 Markdown 文件了。

桌面新建项

测试最佳 DNS 服务器

Namebench 是谷歌开发的一个软件,该软件可以测试 DNS 解析速度。Namebench的工作原理是根据位置和浏览历史来寻找最快的DNS服务器。访问 Namebench Download 页面可以选择软件的合适版本并下载。

Namebench 下载页面

下载后,安装软件,软件一般被解压到 C:\Users\<用户名>\AppData\Local\Temp 文件夹下。

进入软件界面,进行测试设置,然后点击 Start Benchmark 进行测试。

软件界面

软件界面各选项介绍:

Nameservers: 默认测试的 DNS 服务器地址,工具将分析哪一个提供最佳的性能。如果有需要,可以自行指定 DNS 服务器地址。

Include Global DNS Providers: 选中此选项后,Namebench 会包含一些著名的全球 DNS 提供商(如 Google Public DNS、OpenDNS、UltraDNS)进行测试。这些 DNS 服务器无论在速度、安全或可靠性方面,相对比较稳定,建议勾选。

Include Best Available Regional DNS Services: 选中此选项后,Namebench 会根据你的地理位置测试本地区域的 DNS 服务,以找到最佳的区域性 DNS 提供商。ISP 的 DNS 服务器很可能属于这个类别,在某些情况下,它可能是最快的,建议勾选。

Include censorship checks: 可以选择安全级别更高的 DNS 服务器进行测试。

Upload and share your anonymized results: 上传并分享自己的测试结果。

Your Location: 默认选择 None 即可。

Health Check Performance: 默认使用 Fast 即可,如果网络不稳定可以选择 Slow。

Query Data Source: 这是 DNS 查询的数据来源,选项包括:

  • Google Chrome: 指定浏览器历史记录进行查询,如果选择 Google Chrome,Namebench 将查询使用 Google Chrome 访问过的域名的随机样本,并针对这些域名进行测试。
  • Top 2,000 Websites ranked by Alexa: 如果不想让 Namebench 访问浏览器历史记录,或者如果总是匿名浏览,可以选择查询 Alexa 的前 2000 个网站。
  • Cache Latency Test: 缓存延迟测试,支持不同的命中 / 未命中比例。

Number of Queries: 这个选项可以设置基准测试中执行的 DNS 查询次数,查询次数越多,测试的全面性就越高。但是查询次数太高会导致测试时间过长。

完成测试后,工具会自动在浏览器中展示结果,包括根据你选择的标准计算出的最快 DNS 服务器。

测试结果

左侧面板显示最佳DNS服务器比目前使用的主DNS服务器快多少。然后,在右边的窗口中,将会显示适用于所在网络的最快的DNS。

Subtitle Edit 合成双语字幕

有的时候,我们只有一个单独的英文字幕和一个对应的中文字幕,却没有合并的中英双语字幕。如果想要合并制作中英双语字幕,可以使用 Subtitle Edit。

为了美观,先分别打开中文和英文字幕并取消每一句字幕的断行。

断行

Ctrl + A 全选,然后点击“取消断行”。

取消断行效果

字幕断行注意事项:

  1. Subtitle Edit 中的断行无法通过 Ctrl + H 替换,只能通过“取消断行”取消。
    无法查找到断行符
  2. 取消断行会自动将换行替换为空格(为了英文考虑),所以中文字幕在取消断行后会多出一个空格,需要手动删除。

选择“工具 - 合并字幕”,然后选择两个字幕文件:

合并字幕

选择“工具 - 排序方式 - 开始时间”,按时间戳排序字幕。

按照开始时间排序

然后点击“工具 - 合并时间码相同的行”,根据两个字幕文件的时间差选择合适的最大毫秒差并点击确定。

合并时间码相同的行

“制作对话框”功能会在中英双语字幕前分别加一个“-”符号,更加美观。

合并成功后保存文件,在电影中添加字幕测试效果。

Subtitle Edit 内测试效果

播放器内测试效果

当然,如果遇到更复杂的情况,比如中英文的字幕分句不同,这样在合并的时候就会出现错误,需要手动调整。

调用 SYSTEM 权限更改文件

在卸载 ZeroTier 之后,发现 C:\Program Files (x86) 下仍然有残留文件。

手动删除文件,提示需要提供管理员权限;提供权限后,提示需要 SYSTEM 提供的权限才能删除:

需要 SYSTEM 提供的权限才能对此文件进行更改

查看文件属性,尝试修改文件权限,发现全都是灰色无法修改:

无法修改文件权限

经过查询,了解到在 Administrator 上还有更高的 SYSTEM 权限。

从 PsExec - Sysinternals 下载 PsExec 工具,然后在 PsTools 文件夹下输入以下命令运行 PsExec:

1
.\psexec -i 1 -s cmd.exe

-i 1 是指在交互模式下启动(“1” 是指桌面编号,通常是默认桌面),-s 是指以 SYSTEM 权限运行命令。

运行 PsExec 工具

这条命令会打开一个以 SYSTEM 权限运行的 CMD,可以用 whoami 命令验证当前会话身份:

成功调用 SYSTEM 权限

这样就能对锁定 SYSTEM 权限的文件进行更改了。

如果想要想 sudo 调用管理员权限一样快速调用 SYSTEM 权限,可以创建 systemdo.bat 和 systemdo.ps1,并把这两个文件放在一个有系统环境变量的路径下(或为存储这两个文件的路径单独添加环境变量),这样直接在 CMD 或者 Powershell 中输入 systemdo 就能调用 SYSTEM 权限了。

systemdo.bat:

1
2
@echo off
sudo psexec -s cmd.exe

systemdo.ps1:

1
sudo psexec -s powershell.exe

以上功能的实现要求先安装并启用内联式的 Sudo for Windows。

更改 Google 账号归属地

首先,访问 Google 服务条款页面检查账号当前归属地:

Google 服务条款页面

很多 Google 服务需要账号归属地为美国,同时 Google 提供了一个申诉通道,可以通过此方法强制将账号归属地迁移至其他地区。

访问请求更改关联区域页面,并在下面填写对应的申诉理由。

请求更改关联区域

为了提高申诉通过率,在选项中必须选择 Other Reason,并且需要声明是为了“开发者项目”需求。以下为通用申诉模板:

1
I am currently working on a project that requires access to US-exclusive developer tools and early access programs. To proceed with my work, I need to update my account region. Please assist me in changing my location to [].

通常情况下,在 [] 中填写对应的州即可(一般填写 California)。

提交表单后,通常在 30 分钟左右会收到 Google 的邮件通知。

更改账号归属地成功邮件

此时返回 Google 服务条款页面,即可看到账号归属地被成功更改。

CLion 控制台显示中文乱码

使用 CLion 时,在控制台 printf 中文会出现乱码:

CLion 控制台显示中文乱码

这是因为 MinGW 默认使用 ANSI 编码(Windows 本地编码):

  • Windows 中文系统默认编码是 GBK
  • MinGW 的 printf 期望输出 GBK 编码的字符串
  • 而 CLion 默认使用 UTF-8 编码保存源文件

这就导致:UTF-8 编码的字符串 → MinGW 控制台(期望 GBK)→ 显示乱码

Cygwin 能正常工作是因为:

  • Cygwin 模拟了 Linux 环境
  • 默认使用 UTF-8 编码
  • 和 CLion 的编码设置一致

使用 Cygwin 进行编译就可以解决问题。

首先在 Cygwin 官方网站下载安装 Cygwin64:

Cygwin 官方网站

选择下载源为阿里云(https://mirrors.aliyun.com)后,选择需要安装的软件包。

需要搜索安装的软件包为:gcc-core / gcc-g++ / gdb / make / binutils(共 5 个,均在 Devel 目录下)

gcc-core

gcc-g++

gdb

make

binutils

安装完成后打开桌面上的 Cygwin64 Terminal,分别输入以下命令测试安装是否成功:

1
2
3
4
5
cygcheck -c cygwin
gcc -v
g++ -v
gdb -v
make -v

测试版本号

打开 CLion,在设置里选择构建、执行、部署 - 工具链,+ 号选择 Cygwin,CLion会自动检测并配置,检测完成后将 Cygwin 上移到第一个并点击确定即可。

在 CLion 配置 Cygwin

将 Cygwin 设置为默认编译器后,CLion 控制台输出就没有乱码了。

乱码问题解决

v2rayN TUN 模式失效且无法更新

打开 TUN 模式时,ping google.com 不通,查看 v2rayN 控制台报错,提示 sing-box 核心太新,而 v2rayN 版本太旧。旧版 v2rayN 使用的配置文件语法不适配新年版核心,因此 TUN 模式无法启用。

临时解决方式,在用户环境变量新建两个新的变量:

ENABLE_DEPRECATED_SPECIAL_OUTBOUNDS = true

ENABLE_DEPRECATED_TUN_ADDRESS_X = true

这两个环境变量可以让新版 sing-box 内核兼容旧版 v2rayN 语法,暂时解决 TUN 模式失效问题。

另一种方式是将 v2rayN 更新到最新版,但是更新时可能会报错:

v2rayN 更新报错

v2rayN 内部的代码写了一个静态 GitHub 下载路径,但某次更新时仓库结构或 Release 文件的命名规则被更改,导致旧版 v2rayN 无法正常更新。

完全退出 v2rayN,备份 v2rayN 安装目录下的 guiConfigs 文件夹,然后将整个安装目录全部删除。

下载最新版 v2rayN,将软件本体解压到指定安装目录,启动一次让安装目录出现 guiConfigs 文件夹后,再退出软件,用原来的文件夹内容覆盖,即可在保留用户设置的同时解决无法更新的问题,同时也能让 TUN 模式正常工作,可以将临时解决方案中添加的两个环境变量删除。

软件图标变成空白文件

有的时候能看到任务栏或其他地方的软件图标变成了空白文件:

图标变成空白文件

可能是由于 Windows 的软件图标缓存数据库出错了,可以强制重新生成以解决问题。

在控制台依次输入以下指令:

1
2
3
4
ie4uinit.exe -show # 强制刷新并重新填充用户的桌面图标和外壳设置
taskkill /IM explorer.exe /F # 强制终止 Windows 资源管理器进程,解除系统对旧图标缓存文件的占用锁
DEL /A /Q "%localappdata%\IconCache.db" # 删除位于当前用户账户下的图标缓存数据库文件
start explorer.exe # 重启 Windows 资源管理器

即可重新生成用户图标缓存数据库。

Cargo 出现网络代理错误

在使用 Cargo 下载依赖时,有时可能报错超时,无法下载依赖。

检查 ~/.cargo/ 文件夹,通常没有 config.toml 文件,需要自行创建。

将以下字节跳动镜像源设置添加到 config.toml:

1
2
3
4
5
6
7
8
9
10
11
[source.crates-io]
replace-with = 'rsproxy-sparse'

[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"

[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"

[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"

如果仍然无法下载,且检查错误信息发现 Cargo 访问了代理端口 7890 / 10809,但此时并没有开启代理软件。

在终端输入以下命令,检查系统代理设置:

1
2
3
4
5
6
echo %http_proxy%
echo %https_proxy%
echo %all_proxy%
echo %HTTP_PROXY%
echo %HTTPS_PROXY%
echo %ALL_PROXY%

如果输出与输入相同,则可能由于电脑中安装了 Git,Cargo直接使用了 Git 的代理设置。

检查 Git 代理设置:

1
2
git config --global --get http.proxy
git config --global --get https.proxy

此时显式禁用 Cargo 代理即可。

在 config.toml 添加以下设置:

1
2
3
4
5
6
7
8
9
10
11
[http]
proxy = "" # 设置为空字符串禁用代理
check-revoke = false

[https]
proxy = ""
check-revoke = false

[net]
git-fetch-with-cli = true
retry = 3 # 添加重试次数

快速打开环境变量页面

平常我们在打开系统环境变量配置页面时,一般都是先 Win + S 然后搜索系统环境变量打开。但实际上,还有其他简便方法可以让我们更快速的打开这个页面。

Win + R 打开

先按下 Win + R,然后输入 rundll32.exe sysdm.cpl,EditEnvironmentVariables 即可打开系统环境变量页面。

脚本打开

如果觉得这一长串命令不好记,可以在桌面新建一个 env.bat 文件,输入以下内容:

1
2
3
@echo off
start rundll32.exe sysdm.cpl,EditEnvironmentVariables
exit

将这个脚本放到一个已经被保存到环境变量的文件夹下(或者放到一个特定文件夹下,再把这个文件夹添加到环境变量),按下 Win + R,此时输入 env 即可直接打开系统环境变量页面。

这种方式因为需要先调用 cmd.exe,再通过 cmd.exe 找到环境变量并启动页面,因此启动速度慢且会有黑框闪烁。

快捷方式打开

如果觉得这种办法还是过于繁琐,也可以在桌面新建一个快捷方式,在目标位置处输入 rundll32.exe sysdm.cpl,EditEnvironmentVariables 即可。

Windows 虚拟机不支持嵌套虚拟化

由于电脑装了 Docker 或者 WSL,这些软件运行在微软的 Hyper-V 虚拟化平台上,而 Hyper-V 霸占了底层的硬件虚拟化(Intel VT-x),VMware 作为第三方软件,默认情况下无法直接访问这些硬件指令,所以会出现以下提示:

此平台不支持虚拟化

如果继续,就会启动失败:

虚拟机启动失败

如果需要 Docker / WSL 与 VMware 虚拟机共存,进行以下配置即可。

首先输入 Win + S 搜索“启用或关闭 Windows 功能”,然后确保勾选以下三个选项:

  • Hyper-V
  • 虚拟机平台 / Virtual Machine Platform
  • Windows 虚拟机监控程序平台 / Windows Hypervisor Platform

启用 Windows 虚拟化功能

如果是 Windows 11 家庭版,Hyper-V 选项不存在于此界面内,无需进行配置。

虚拟机平台供 Docker / WSL 使用。

Windows 虚拟机监控程序平台供 VMware 使用。

重启电脑后,在 VMware 的对应虚拟机设置里,将“虚拟机设置 - 处理器 - 虚拟化引擎”下的“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI(V)”选项取消勾选即可。

取消虚拟化设置

播放 NVIDIA 录屏没有声音

Windows 11 自带的媒体播放器在处理 NVIDIA 录制的双音轨视频时,往往会因为无法正确解析多条音频流而导致播放没有声音。

如果视频已经录制完毕且播放无声,不需要重新渲染或转码,只需使用 FFmpeg 重新封装一下即可。这会保留原画质,且处理速度极快。

在终端输入以下命令:

1
ffmpeg -i input.mp4 -c copy output.mp4

将 input.mp4 替换为原始录屏文件名,output.mp4 替换为想要保存的新文件名。

为了避免以后的录屏再次出现无法播放声音的情况,建议直接修改 NVIDIA 的叠加面板设置。

使用快捷键 Alt + Z 呼出 NVIDIA 录屏面板,进入设置 - 音频,在音轨格式中选择“单音轨”。如果平时录屏不需要录制说话声音,可以直接在面板首页点击麦克风图标,将其设置为“关闭”状态。