Windows自带的记事本打开一些简单的短小文本不错,但自带的这个记事本相应的也很残.比如查找替换功能,比如编码格式兼容问题…
为了使记事本使用更方便,我们有不少替代方案,比如 notepad2,notepad++,ultraedit…
个人比较喜欢notepad2-mod,替换分两种,一种直接改名为notepad.exe替换文件,另一种则是使用映像劫持,将名称为notepad.exe的进程劫持到我们指定的程序,以此实现启动记事本时打开我们要的notepad2.exe.
替换文件
Windows自带的notepad.exe在系统中有2~3份,64位系统则翻倍,其中必然有一份是源头,当系统发现Windows和system32目录下的notepad.exe不匹配时,则自带将其恢复.
对于xp或2003版本系统,用以下批处理即可完成:
12345678910 |
rem 把notepad2.exe和批处理放同一目录copy notepad2.exe C:Windowssystem32dllcachenotepad.exe /ycopy notepad2.exe c:Windowsnotepad.exe /ycopy notepad2.exe c:Windowssystem32notepad.exe /yrem notepad.ini是notepad2.exe的个性配置文件,如不需要则忽略copy notepad.ini c:Windowsnotepad.ini /ycopy notepad.ini c:Windowssystem32notepad.ini /yecho 替换完成pause |
如果系统文件保护功能没有关闭,替换后会有系统文件更改提示,点保留更改即可.
Windows Vista之后的系统版本系统权限控制大大加强,所以不能像Windows xp下那样直接替换文件,我们需要额外设置些系统权限才可以.
我这里装的是win8.1,权限设置和win7等是一样的,必须先得取得所有权,才可以更改用户权限.
文件夹权限设定完成后,将我们需要的notepad2.exe改名为notepad.exe,复制替换系统文件,如果想以后恢复,则建议将系统该文件改名备份处理.
当提示目标文件夹访问被拒绝时,点击”继续”按钮才可以.
此时,我们已经将文件替换完成,其他地方剩下的文件以此类推.
替换完成后,当我们打开txt或原notepad.exe关联的文件时,将调用新的notepad.exe打开,编辑网页,查看ini啥的还带格式,语法高亮,简直不是舒服一点…
notepad2有个对应名称的配置,可以实现字体设置,语法主题设置等个性化配置,每次notepad2退出或F7时会保存在同目录的ini文件中.同样的,因为系统目录权限的问题,notepad2无法保存该配置,如果需要则可以在其他地方设置保存后将其复制到system32和Windows目录,因为之前notepad2已改名为notepad.exe,所以ini名称应该为notepad.ini.
至此,手工替换系统文件实现notepad2替代自带记事本就完成了.
当然,如果需要大量部署,要么自己封装系统的时候就替换好,要么可以尝试下批处理,从网上找了一段,未验证是否可行:
12345678910111213 |
@echo offrem 取得所有权takeown /f %systemroot%notepad.exetakeown /f %systemroot%system32notepad.exetaskkill /f /im notepad.exe 2>nulrem 备份原文件ren %windir%notepad.exe notepad.exe.bakicacls %windir%notepad.exe /grant %username%:f /ticacls %windir%system32notepad.exe /grant %username%:f /tcopy /y notepad.exe %windir%copy /y notepad.exe %windir%system32echo 替换完成notepad |
此批处理只考虑了两个目标notepad.exe,且只用于32位版本系统,自己稍加发挥修改下吧.
映像劫持
其实notepad2官方提供的安装包采用的就是映像劫持方式,这种方式的优点是不用处理复杂的系统权限,也不对系统文件造成破坏,简单方便,推荐使用.
手工修改注册表实现映像劫持注册表如下:
1 |
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options |
这个注册表项可以实现进程名劫持,官方注册表如下:
1234 |
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe]"Debugger"=""C:\Program Files\Notepad2\Notepad2.exe" /z" |
这个注册表看着就很明白了,打开notepad.exe时实际上被转到了notepad2.exe.本机notepad2安装在Program Files目录下,自己改改路径到自己notepad2.exe所在目录就好了.如果不想折腾,直接下载官方提供的安装包吧:http://www.flos-freeware.ch/notepad2.html
为了让使用更方便,我们可以在系统右键添加一个使用记事本打开,当要打开的文档未做关联时,可以直接右键用记事本打开,提供一个注册表,将注册表导入即可.
1234567 |
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREClasses*shell][HKEY_LOCAL_MACHINESOFTWAREClasses*shellOpenInNotepad];右键显示啥名自己写啦...装B先写把英文...@="Open with notepad"[HKEY_LOCAL_MACHINESOFTWAREClasses*shellOpenInNotepadcommand]@="notepad.exe "%1"" |
替代记事本下载
现成的Windows自带记事本替代方案可见:notepad2-mod
原文地址:https://www.cnblogs.com/chinatrump/p/11614892.html