让你的Windows更具生产力

温馨提示:点击页面下方以展开或折叠目录

摘要:通过修改注册表的方式提升Windows使用体验、提高工作效率!

文章说明
文章作者:鴻塵
文章链接:https://hwame.top/20210904/make-your-windows-productive.html
参考资料:

1.替换系统记事本

众所周知,Windows自带的记事本notepad及其简陋,有时候只想查看一下文件内容但又不想打开IDE,这时候一个简单的带语法高亮的记事本就派上用场了。

通过 映像劫持 实现将Notepad2替换系统自带的记事本。

说明①: Notepad2网上有很多版本,本人自用的【Notepad2】是仅有1.86M的单文件绿色版,所有配置 写死 到文件中,因此没有配置文件、没有主题文件、无法修改配置。
说明②: Notepad2有些新的版本自带了「系统集成」的功能,可以一键替换,但我没有找到无需配置文件的单文件版,因此手动修改注册表。
说明③: Notepad3支持的语法高亮更多,比如Markdown格式,奈何花里胡哨不在我的审美上。

参考文章: https://my.oschina.net/u/2304110/blog/419536

所谓「映像劫持」,就是Image File Execution Options,是CreateProcess函数中的一个功能,即在可执行程序运行时,Windows会先检测对应IFEO中的Debugger值,如果存在这个参数的话,就运行这个参数中指定的程序。

其实现原理为,修改Image File Execution Options键值后,在有notepad.exe运行请求的时候,就欺骗系统转而运行notepad2.exe,从而实现将原本系统默认的记事本改成了功能更为全面的Notepad2。

这种方式不但不需要修改文件关联,也无需修改系统文件,避免了以往的文件替换法导致的系统更新后就失效的问题。

具体步骤如下:

  • 下载Notepad2.exe单文件,【阿里云盘】,【Github下载】,版权信息如下:
    Notepad2版权
  • 将其放在与原notepad.exe相同的位置,即C:\Windows\System32\Notepad2.exe。尽管这一步非必须,但仍建议这么做。
  • Win+R运行输入regedit打开注册表,创建如下注册表项:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe,如果无法修改,需要先右键取得权限。
  • notepad.exe注册表项中,右键创建名为Debugger的字符串值(REG_SZ),如图:
    编辑注册表项值
  • 将字符串值Debugger的数值数据修改为Notepad2.exe的完整路径,最后以 /z 参数结尾,即"C:\WINDOWS\system32\Notepad2.exe" /z,如图:
    修改字符串值的数值数据
  • 至此文本文件用记事本打开即可,还可右键增加「用记事本打开」及图标,见下文。

2.右键用记事本打开

上面已经将记事本替换成强大的Notepad2,但是一般情况下只有txt等文本文件才可直接用记事本打开。虽然可以右键选择打开方式,但未免太麻烦;那如果勾选「始终使用此应用打开xxx文件」,又会改变默认的打开方式,不符合我们的预期。例如bat文件双击运行,我们想用记事本打开查看内容就只能右键打开方式了。因此右键菜单增加「用记事本打开」也算是一个比较实用的提高生产力的功能了。

具体步骤如下:

  • Win+R运行输入regedit打开注册表,创建如下注册表项:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\notepad,双击默认将数值数据修改为「用记事本打开」,如图:
    创建notepad项
  • 我们也可以为右键菜单添加一个记事本图标。如上图,在notepad项下新建一个名为Icon字符串值 ,将其数值数据修改为Notepad2.exe的文件路径C:\Windows\System32\notepad2.exe
  • notepad项下新建一个名为command (即子项),双击默认将数值数据修改为「notepad %1」,注意空格,如图:
    创建command子项

3.右键打开命令行

有时候我们需要在特定目录下打开命令行,通常会在开始菜单或运行中打开,此时路径一般为C:\Users\鴻塵C:\Windows\System32,然后一层一层切换过去。

在右键菜单中添加「在此处打开命令行」,可以直接定位到当前文件夹,免去cd之苦。

本文打开命令行仅以普通用户权限,因为我的组策略已修改为「管理权限创建任务」,若有需要以管理员身份打开命令行,请移步参考文章。

具体步骤如下:

  • 右键打开CMD
    • Win+R运行输入regedit打开注册表,创建如下注册表项:计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere,将「默认」字符串值的数值数据为「在此处打开命令行窗口」。此处项值和数值数据可随意。
    • OpenCmdHere项下新建一个名为Icon字符串值 ,将其数值数据修改为cmd.exe的文件路径cmd.exe
    • OpenCmdHere项下新建一个名为command (即子项),双击默认将数值数据修改为「cmd.exe /s /k pushd "%V"」。
    • 此处步骤与上文右键用记事本打开类似,简要截图如下:
      右键打开CMD
  • 右键打开PowerShell
    • Win+R运行输入regedit打开注册表,创建如下注册表项:计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell_Here,「默认」字符串值的数值数据为「在此处打开PowerShell」。此处项值和数值数据可随意。
    • Powershell_Here项下新建一个名为Icon字符串值 ,将其数值数据修改为powershell.exe的文件路径powershell.exe
    • Powershell_Here项下新建一个名为command (即子项),双击默认将数值数据修改为「powershell.exe -noexit -command Set-Location '%V'」。
    • 截图略。

说明: 增加图标时没有写文件的完整路径,因为路径已在环境变量中,故上文右键用记事本打开中设置图标同理可简写。

4.右键复制文件路径

当我们需要用到某文件的绝对路径时,怎么获取该字符串呢?是先地址栏复制目录再复制文件名,还是文件属性的安全里面去复制对象名称?

因此在右键菜单添加一个复制文件(夹)路径,也能提高生产力。

但是我不会告诉你,选中文件(夹)后按住Shift右键就有「复制为路径」的选项!所以这里修改注册表其实也是多此一举,但是有多少人知道这种「复制为路径」的方法呢?

方法1.0来自吾爱破解论坛用户tmdgdx的评论,详见https://www.52pojie.cn/forum.php?mod=viewthread&tid=1374242&page=1#pid36998334

1
2
3
4
5
6
7
8
9
10
11
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\copypath]
@="复制文件夹路径"
[HKEY_CLASSES_ROOT\Directory\shell\copypath\command]
@="mshta vbscript:clipboarddata.setdata(\"text\",\"%1\")(close)"

[HKEY_CLASSES_ROOT\*\shell\copypath]
@="复制文件路径"
[HKEY_CLASSES_ROOT\*\shell\copypath\command]
@="mshta vbscript:clipboarddata.setdata(\"text\",\"%1\")(close)"

上述mshta这种方法有两个问题:

  • ①复制exe等格式的文件时会有类似「是否运行xxx」的警告;
  • ②复制链接例如快捷方式会复制源文件路径,而不是快捷方式本身的路径。

推荐使用在Win10右键菜单中添加「复制路径」选项中的方法2.0:

1
2
3
4
5
6
7
8
9
10
11
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Allfilesystemobjects\shell\windows.copyaspath]
"CanonicalName"="{707C7BC6-685A-4A4D-A275-3966A5A3EFAA}"
"CommandStateHandler"="{3B1599F9-E00A-4BBF-AD3E-B3F99FA87779}"
"CommandStateSync"=""
"Description"="@shell32.dll,-30336"
"Icon"="imageres.dll,-5302"
"InvokeCommandOnSelection"=dword:00000001
"MUIVerb"="@shell32.dll,-30329"
"VerbHandler"="{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}"
"VerbName"="copyaspath"

其中"Icon"="imageres.dll,-5302"可以改成4,换成文件夹风格图标,如图所示:
右键复制路径

5.Windows照片查看器

众所周知,Win10自带的「照片」极其难用,甚至可能需要安装第三方替代软件,这让我们不得不感叹还是Win7时代的「Windows照片查看器」最经典。

通过修改注册表的方式恢复「Windows照片查看器」,并且设置为默认。

具体步骤如下:

  • Win+R运行输入regedit打开注册表,定位到如下注册表项:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations
  • FileAssociations项下新建一个名为.jpg字符串值 ,将其数值数据修改为PhotoViewer.FileAssoc.Tiff
  • 同样新建其他图片后缀名的字符串值,例如.jpeg.png.gif.bmp.ico等,数值数据皆为PhotoViewer.FileAssoc.Tiff,添加完成后的注册表如图所示:
    修改图片文件关联
  • 双击图片打开时选择「Windows照片查看器」并勾选「始终使用此应用打开.xxx文件」即可设置为默认方式。若已设置其他为默认,右键打开方式选择其他应用,即可设置默认。如图所示:
    选择图片默认打开方式

注意①: 并非所有格式的图片都能用「Windows照片查看器」打开,如.webp.svg等。
注意②: 新建的 字符串值 名称为图片扩展名,且有一个点.