君匡

V1

2022/07/21阅读:15主题:自定义主题1

第N次重装系统之win10注册表

前言

因为某次想要修改注册表,结果把整个系统都搞坏了,只好再次咬牙重装。庸人一个,发狠之下,便有了此文。

先说一些相关的文案知识,接着附上我的一些改动和应用,类似右键获取文件名、修改软件默认盘、修改右键新建菜单等。

注意所有的reg文件都是ansi编码的!!!

文案知识

HKEY_CLASSES_ROOT\*\shellHKEY_CLASSES_ROOT\*\shellx放置了右键菜单的地方,看看有哪些是自己安装的软件带来的,看名字挑着没用的就能删除了。

这里提醒一句,看见键名称是一串序列号的,请仔细核对后,确认不是系统项再删除。用这种长传数字当名字的键,如果里面空空如也,那很有可能是系统项。

文件夹分为两类菜单

  1. 一类是鼠标指向一个文件夹图标时,点击右键出来的菜单;

    在 Directory 下,shell和shellex\ContextMenuHandlers 里面

  2. 第二类菜单是鼠标在已经打开的文件夹窗口的空白处,点击右键弹出的菜单。

    在子项 Background 里面。

打开组策略和注册表

#唤出运行窗口
win+R

#组策略
regedit

#注册表
gpedit.msc

注册表根键说明

  • hkey_classes_root 包含注册的所有OLE信息和文档类型,是从 hkey_local_machine\software\classes复制的。
  • hkey_current_user 包含登录的用户配置信息,是从hkey_users\当前用户子树复制的。
  • hkey_local_machine 包含本机的配置信息。其中config子树是显示器打印机信息; enum子树是即插即用设备信息;system子树是设备驱动程序和服务参数的控制集合;software子树是应用程序专用设置。
  • hkey_users 所有登录用户信息。
  • hkey_current_config 包含常被用户改变的部分硬件软件配置,如字体设置、显示器类型、打印机设置等。是从hkey_local_machine\config复制的。
  • hkey_dyn_data 包含现在计算机内存中保存的系统信息。

应用

加快菜单显示速度

修改HKEY_CURRENT_USER\Control Panel\Desktop,将字符串值MenuShowDelay的数值数据更改为[0],调整后如觉得菜单显示速度太快而不适应者可将[MenuShowDelay]的数值数据更改为[200],重新启动即可

参考风之悦的博客有注册表的应用,需要的小伙伴可以自行查看

再参考这篇CSDN的Windows自定义右键菜单步骤更详细一些

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]

"MenuShowDelay"="0"

右键获取文件名

主要是做博客的时候有这个需要,一直都是“重命名-->Ctrl+A-->Ctrl+C-->切换后Ctrl+V”几次还行,多次之后就烦了。

于是想要在右键菜单里加入一个复制当前文件(夹)的选项。

经过搜集和整理后发现了两个方法,大家按需选择。

方法一需要两个小工具,但是可以获得后缀名;方法二之需要一个小工具,但是不能获得后缀名。

方法一

需要下载小工具nircmd 和hideexec,请移步公众号**君匡**(因为域名和服务器都会频繁改动,关注后取关也无妨的,/腼腆笑)

第一步,手动建立文件copyname.bat,并把他放在路径C:\Users\Administrator\bat

nircmd clipboard set "%~nx1"

第二步,安装nircmd,解压后双击文件D:\Program Files\nircmd\x64\nircmd.exe跳出一个对话框,选择Copy To Windows,完成提示后,核对是否有C:\Windows\nircmd.exe

第三步,安装hideexec,把文件解压到D:\Program Files\即可。

第四步,修改注册表

获取文件的路径需要去HKEY_CLASSES_ROOT\*\shell\,获取文件夹的路径是需要去HKEY_CLASSES_ROOT\Directory\shell进行,如果觉得手动修改比较复杂,你可以直接跳到Reg文件那里。

手动修改注册表

  • 在shell文件夹上面右键,新建->项->copyname,修改copyname的默认值为复制文件名

)

  • 在copyname文件夹上面右键,新建->项->command

修改command的默认值为

"D:\Program Files\hideexec\bin.x86-64\hideexec.exe" "C:/Users/Administrator/bat/copyname.bat" "%1"
  • 按SHIFT键时才显示(可选)

在shell文件夹上面右键,新建->字符串值->Extended(值为空即可),效果如图:

配个图,明眼人都知道怎么一回事儿。

reg文件自动修改注册表

附上Reg文件,如果你觉得手动修改有些麻烦,而且前三步你是完全照着我的要求做的,那么可以直接运行我的reg脚本,在任何地方新建,用记事本打开,填入内容后保存,再用记事本修改文件编码为Ansi编码!!!

新建一个txt文本文件,文件名称随意,修改文件扩展名为.reg即可,内容如下。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\copyname]
"icon"="C:\\Windows\\system32\\SHELL32.dll,68"
@="复制文件夹名"

[HKEY_CLASSES_ROOT\Directory\shell\copyname\command]
@="\"D:\\Program Files\\hideexec\\bin.x86-64\\hideexec.exe\" \"C:/Users/Administrator/bat/copyname.bat\" \"%1\""

[HKEY_CLASSES_ROOT\*\shell\copyname]
"icon"="C:\\Windows\\system32\\SHELL32.dll,68"
@="复制文件名"

[HKEY_CLASSES_ROOT\*\shell\copyname\command]
@="\"D:\\Program Files\\hideexec\\bin.x86-64\\hideexec.exe\" \"C:/Users/Administrator/bat/copyname.bat\" \"%1\""

保存后退出,双击打开 reg文件,选择确定即可。

方法二

注意:复制的文件名没有后缀!

第一步,建立脚本Bat文件

  • 手动建立文件copyfilename.bat,并放到路径C:\Windows里。
set/p"=%~n1"<nul |clip
  • 手动建立文件copydirectoryname.bat,并放到路径C:\Windows里。
set/p"=%~nx1"<nul |clip

第二步,建立脚本Reg文件

新建一个txt文本文件,文件名称随意,修改文件扩展名为.reg即可,内容如下。

Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\*\shell\copyname]
"icon"="C:\\Windows\\system32\\SHELL32.dll,68"
@="复制文件名"

[HKEY_CLASSES_ROOT\*\shell\copyname\command]
@="\"D:\\Program Files\\hideexec\\bin.x86-64\\hideexec.exe\" \"C:/Windows/copyfilename.bat\" \"%1\""
 
[HKEY_CLASSES_ROOT\Directory\shell\copyname]
"icon"="C:\\Windows\\system32\\SHELL32.dll,68"
@="复制文件夹名"

[HKEY_CLASSES_ROOT\Directory\shell\copyname\command]
@="\"D:\\Program Files\\hideexec\\bin.x86-64\\hideexec.exe\" \"C:/Windows/copydirectoryname.bat\" \"%1\""

运行前,用记事本修改文件编码为Ansi编码!!!

右键复制文件路径

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"

Shift右键添加获取管理员权限

默认你已经看过了上面的内容,所以直接附上Reg文件内容了。

Windows Registry Editor Version 5.00

;取得文件修改权限  

[HKEY_CLASSES_ROOT\*\shell\runas]  

@="管理员权限"

"Extended"=" "

"Icon"="C:\\Windows\\System32\\imageres.dll,102"

"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\*\shell\runas\command]  

@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

[HKEY_CLASSES_ROOT\exefile\shell\runas2]  

@="管理员权限"

"Extended"=" "

"Icon"="C:\\Windows\\System32\\imageres.dll,102"

"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]  

@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

[HKEY_CLASSES_ROOT\Directory\shell\runas]  

@="管理员权限"

"Extended"=" "

"Icon"="C:\\Windows\\System32\\imageres.dll,102"

"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]  

@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

修改软件默认盘

平常安装的时候,都会是默认安装到C盘,于是我突发奇想,想使得安装的时候默认在D盘。可以用修改注册表的手段来实现。

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

修改ProgramFilesDirProgramFilesDir (x86)即可。

然后我就发现好多基础的功能不能够使用了!!!

比如说开始菜单里的IE就会自动的牵引到D盘路径里面,但是它实际是在安装系统的时候放到了C盘,我又不想要挨个整理开始菜单,于是我就又改回来了。

如果你是刚刚建立了新系统,可以这样子修改,如果已经用了一段时间,并不太建议。

附上reg文件如下。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
"ProgramFilesDir"="D:\\Program Files"
"ProgramFilesDir (x86)"="D:\\Program Files (x86)"

添加gitbash到桌面右键和文件夹右键

前提是我已经安装了git-bash并且所在位置为"D:\Program Files\Git\bin\bash.exe",如果不一致,请自行替换。

在文件夹内右键的路径需要去计算机\HKEY_CLASSES_ROOT\Directory\Background\shell,在桌面右键的路径是需要去计算机\HKEY_CLASSES_ROOT\DesktopBackground\Shell进行,如果觉得手动修改比较复杂,你可以直接跳到Reg文件那里。

进入注册表路径,在shell文件夹上面右键,新建->项->git-bash

  • 指定图标:建立名为Icon的字符串,值为C:\Windows\system32\mmres.dll,4

  • 放到顶部:建立名为position的字符串,值为top

  • 指定路径:在git-bash文件夹上面右键,新建->项->command,修改默认值为

    "D:\Program Files\Git\bin\bash.exe"

附上reg文件如下。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\git-bash]
"Icon"="C:\\Windows\\system32\\mmres.dll,4"
"position"="top"
"MUIVerb"="GitBash(&G)"

[HKEY_CLASSES_ROOT\Directory\Background\shell\git-bash\command]
@="\"D:\\Program Files\\Git\\bin\\bash.exe\""

自定义右键新建菜单

注册表路径为

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew

但是一般来说,直接编辑保存会提示没有权限。

修改权限

在shell文件夹上面右键->权限->高级->禁用继承->将已继承的权限转换为此对象的显示权限

将两个管理员权限都改成读取,给当前用户取消完全控制权限,点击显示高级权限,新增修改和删除权限!!

修改classes项

原先是:

.bmp
.doc
.docx
.library-ms
.lnk
.ppt
.pptx
.rar
.rtf
.txt
.xls
.xlsx
.zip
Folder

可以删除原有的内容和排序,改成你想要的,比如我就是改成了这个样子。

Folder
.txt
.md
.docx
.xlsx
.pptx

但是修改保存后,发现还没有.md的选项.原来是我还缺一步操作.

自定义选项

拿.txt做参考

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.txt]
"Content Type"="text/plain"
"PerceivedType"="text"
@="txtfile"

[HKEY_CLASSES_ROOT\.txt\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\.txt\ShellNew]
"ItemName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,\
  6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,\
  00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,2c,00,\
  2d,00,34,00,37,00,30,00,00,00
"NullFile"=""

分析后发现他里面有一项是@="txtfile",于是再去统计目录下发现项txtfile

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\txtfile]
@="Text Document"
"EditFlags"=dword:00210000
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
  32,00,5c,00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,\
  00,2c,00,2d,00,34,00,36,00,39,00,00,00

[HKEY_CLASSES_ROOT\txtfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\
  61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,\
  00,30,00,32,00,00,00

[HKEY_CLASSES_ROOT\txtfile\shell]

[HKEY_CLASSES_ROOT\txtfile\shell\open]

[HKEY_CLASSES_ROOT\txtfile\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
  00

[HKEY_CLASSES_ROOT\txtfile\shell\print]

[HKEY_CLASSES_ROOT\txtfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\
  00,25,00,31,00,00,00

[HKEY_CLASSES_ROOT\txtfile\shell\printto]

[HKEY_CLASSES_ROOT\txtfile\shell\printto\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6e,00,6f,00,\
  74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,70,00,74,\
  00,20,00,22,00,25,00,31,00,22,00,20,00,22,00,25,00,32,00,22,00,20,00,22,00,\
  25,00,33,00,22,00,20,00,22,00,25,00,34,00,22,00,00,00


观察后总结,若是我要新增一个自定义的新建类型,必须要添加默认应用(typora)和默认类型(.md)两个项进去才可以。

于是就有了下面的精简版Reg文件。

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.md]
@="typora"
[HKEY_CLASSES_ROOT\.md\ShellNew]
"NullFile"=""
[HKEY_CLASSES_ROOT\typora]
@="Markdown"
"Icon"="\"D:\\Program Files\\Typora-便携-0.9.92\\Typora\\Typora.exe\""
"position"="top"
[HKEY_CLASSES_ROOT\typora\command]
@="\"D:\\Program Files\\Typora-便携-0.9.92\\Typora\\Typora.exe\""

效果如下:

去除多余导航

注册表路径如下。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\

对应的文件夹选项如下。

下载:088e3905-0323-4b02-9826-5d99428e115f
图片:24ad3ad4-a569-4530-98e1-ab02f9417aa8
音乐:3dfdf296-dbec-4fb4-81d1-6a3438bcf4de
文档:d3162b92-9365-467a-956b-92703aca08af
视频:f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a
3D对象:0DB7E03F-FC29-4DC6-9020-FF41B59E513A
桌面:B4BFCC3A-DB2C-424C-B029-7FE99A87C641

直接附上Reg文件便是,Win10真的不会改呀。

Windows Registry Editor Version 5.00
 
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}]

使用Bat脚本修改注册表

主要核心命令为:

  • reg query
  • reg del
  • reg add

使用这个方式,可以直接将java等环境变量一次性全安装到系统环境变量上!

echo off

::设置变量
set oldPath=
set JAVA_HOME="D:\all_sdk\Java\jdk1.8.0_201"
set MVN_HOME="D:\all_sdk\apache-maven-3.6.0"
set Android_SDK="D:\all_sdk\Android_SDK\platform-tools"
set NODE_HOME="D:\all_sdk\node-v12.15.0"
set PYTHON_HOME="D:\all_sdk\python"


:: 查询语句获得原有变量
for /f "tokens=3" %%a in ('"reg query "HKEY_CURRENT_USER\Environment" /v  Path"'do (set oldPath=%%a)

echo oldPath:%oldPath%

:: 赋值到注册表中
reg add "HKCU\Environment" /f /t REG_SZ /v JAVA_HOME /d %JAVA_HOME%
reg add "HKCU\Environment" /f /t REG_SZ /v MVN_HOME /d %MVN_HOME%
reg add "HKCU\Environment" /f /t REG_SZ /v Android_SDK /d %Android_SDK%
reg add "HKCU\Environment" /f /t REG_SZ /v NODE_HOME /d %NODE_HOME%
reg add "HKCU\Environment" /f /t REG_SZ /v PYTHON_HOME /d %PYTHON_HOME%


reg add "HKCU\Environment" /f /t REG_EXPAND_SZ /v Path /d "%oldPath%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%%MVN_HOME%%\bin;%%Android_SDK%%;%%NODE_HOME%%;%%NODE_HOME%%\node_global;%%PYTHON_HOME%%"

pause

感谢

感谢现在的好奇,为了能成为更好的自己。

Win10系统怎么创建自定义右键菜单

分类:

后端

标签:

后端

作者介绍

君匡
V1