[本文知识点:1,使用批处理拿到Administrator管理员权限 2,使用批处理修改注册表 3,手动修改注册表]

你的记事本打开比较大的文件的时候会不会这样?

心灵脆弱的我,经常会因为这个原因觉得心情十分沮丧。很多时候都会想着如何记事本能更加好用一点。

那么今天,它来了,功能与速度的完美结合,造就了它看起来就很吊的绝佳气质,别问落地价,因为开源无价!

先看看替换之后的记事本是如何打开一个比较大的文件的↓

花了大约有7秒时间的样子,比起来原生记事本的直接卡到提示关闭,要好太多了。

关于具体哪个文本编辑器更好用的话,我就不多说了,自己喜欢就好。

我下载的Notepad3 5.19.815.2595 便携版本的,安装版本的会自动将系统记事本给替换掉,客官可以自行选择。

Notepad3,能支持挺多文件类型的语法高亮,能直接通过系统设置的方式运行当前文件(批处理、vbs等非常方便),可以追加剪贴板中的内容到当前文件,可以用来显示动态的日志,还可以透明显示,能最小化到状态栏,能置顶显示在屏幕最顶层,支持正则表达式,还能快速搜索选定的字词。总体而言简单快速,是顶替记事本日常查看文本文件的不错选择。

Notepad3压缩包搬运

接下来的篇幅,就来说说如何自己手动,来实现通过注册表将系统自带的记事本替换为Notepad3,并且如何还原。

编辑注册表实现用任意程序替换记事本

将压缩包解压放在自己喜欢的位置,比如我的是E:\greensoft\notepad3,然后进入目录,选择notepad3.exe,按住Shift,右键,选择复制为路径

Win+R打开运行,输入regedit(一般会简写成运行regedit),打开注册表编辑器,如果弹窗提示进行更改(UAC),点击”是”。#

在左边找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options右键–>新建–>

新建项的名字输入notepad.exe,然后在notepad.exe上面右键点击,选择新建–>字符串值,输入Debugger,然后双击Debugger,输入Debugger字符串的值(前面的右键–>复制为路径,在后面加空格 /z):"E:\greensoft\notepad3\Notepad3.exe" /z

然后,就替换完成啦,运行notepad应该会打开notepad3。然而,总不能让客官们每次都这么来一回吧,谁记得到这么麻烦的步骤呢。接下来看看用批处理如何完成注册表的修改。

使用批处理修改注册表的方法

将以下的代码保存为替换与还原系统记事本.bat,与Notepad3.exe放在一起(E:\greensoft\notepad3)::

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
@echo off
cls
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\xbc_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
net FILE 1>nul 2>nul
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
echo.
echo Get Admin...
echo Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
echo args = "ELEV " >> "%vbsGetPrivileges%"
echo For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
echo args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
echo Next >> "%vbsGetPrivileges%"
echo UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
setlocal enabledelayedexpansion
echo.
echo. ------------------------------
echo. Notepad3辅助工具
echo. by_学边成 wx@xbc19666
echo. ------------------------------
echo. 输入1替换记事本
echo. 输入0还原记事本
echo. 输入3加入右键菜单
echo. 输入4删除右键菜单
set /p "it=· > "

if "!it!"=="1" (
cd /d "%~dp0"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v "Debugger" /d "\"%~dp0Notepad3.exe\" /z" /f > nul
echo. 祝客官生活愉快!
goto footer
)
if "!it!"=="0" (
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f > nul
echo. 愿客官的生活总是好运相伴!
goto footer
)
if "!it!"=="3" (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\notepad" /ve /d "用记事本打开" /f > nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\notepad\command" /ve /d "notepad %%1" /f > nul
echo. 微笑一下,给自己加油打气。
goto footer
)
if "!it!"=="4" (
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\notepad" /f > nul
echo. 请相信,你的身边总有小美好。
goto footer
)
echo. 哦嚯~~哦~
:footer
echo. 按空格键退出...
pause>nul

代码中1-25行,功能为取得管理员权限来运行当前脚本。原理是输入一个vbs脚本,再调用这个vbs脚本,而这个vbs脚本本身会以UAC方式调用刚才的批处理脚本。

42行,reg add命令,用来往注册表中新增项和值/v表示所选项之下要添加的值名/d表示要分配给添加的注册表 ValueName 的数据

40行,if判断语句,()中间的语句是判断正确的时候要执行的语句。

以后,只要双击运行替换与还原系统记事本.bat,就可以随时替换或者还原系统自带的记事本了。

路由器不好的客官可以通过了解更多以了解更多。

码字也挺花时间的。客官要是觉得有用,欢迎收藏备用,关注我,我们一起学编程。

2461824320

最后更新: 2020年03月25日 23:13

原始链接: https://nimeiz.gitee.io/notes/notepad3/

× 愿我的文字带给你阳光
打赏二维码