如何在Windows 7中替换记事本?[重复]


35

这个问题已经在这里有了答案:

我使用Notepad2。我爱Notepad2

如何在Windows 7中用Notepad2替换Notepad,所以我再也不会使用旧版本的Notepad?


上次您是如何做到的?
OscarRyz

1
他的问题是您不能再简单地覆盖notepad.exe,我认为这是“旧的”安装方法。
R. Martinho Fernandes

:-O不会以管理员身份打开资源管理器吗?
OscarRyz

我不能百分百确定,但是上次我仅检查TrustedInstaller或某些文件对该文件夹具有写访问权。
R. Martinho Fernandes

1
如果您开始启动记事本2而不是记事本,并且还希望将要在记事本2中打开的任何文件类型与之相关联-不需要替换它吗?这不像默认使用Chrome或Firefox而不是IE一样,它要求我们覆盖iexplore.exe ...
Oskar Duveborn

Answers:



34

使用记事本2修改安装程序。它适用于32位和64位。

此Notepad ++ Wiki页面还提供了适用于Windows XP和Windows Vista的分步指南,该指南也适用于Windows 7。


2
我无法在新安装的Win 7(x64)系统上使用Notepad ++指令。毫无疑问,我做错了什么。
马丁

最后...一个站点建议使用正确的(IMO)方式来替换它。
ijprest


该页面仅列出了用Notepad ++替换的大量方法。哪一个实际上在Windows 7 64位上有效?
endlith 2011年

只需使用Mircea Chirea提到的超级简单的解决方案:记事本替换器(请参阅他的答案)。一个安装程序会自动执行此操作。您可以选择任何replacemant编辑器。卸载它,所有更改都将还原。这是完美的解决方案。
Felix Alcala 2013年

3

如果要确保使用的是Notepad2,请转至通常使用Notepad2的文件,然后右键单击>属性。然后在显示“打开方式”的位置,选择“更改”,然后选择“记事本2”。



0

将notepad.exe重命名为oldpad.exe,并将替换的副本或符号链接重命名为notepad.exe


4
如果您可以简单地重命名系统提供的可执行文件而事后没有问题或怪异,我会感到惊讶。
乔伊(Joey)

@Johannes:可以,但是需要很多命令行黑客,尤其是在Vista上(在XP上要容易得多)。
2009年

我用一个提升的浏览器重命名了notepad.exe。我也无法删除uxtheme,但是我可以轻松地对其重命名。
Phoshi

在XP上,系统文件保护需要几秒钟的时间才能启动。因此,如果您很快,可以在资源管理器中手动替换两个notepad.exe,然后单击“忽略更改”或类似的操作
zildjohn01

-1

只是以为我会加入其中。它基于原始的notepad2安装程序脚本,该脚本在Vista中运行良好。我在此论坛帖子中找到了它。

@echo off
TITLE Notepad2 Install Script for Complete Windows Vista and 7 Notepad Replacement
echo.
echo Notepad2 Install Script for Complete Windows Vista and 7 Notepad Replacement
echo Version 1.2
echo.
echo (c) My Digital Life (www.mydigitallife.info)
echo.
echo.
echo.
echo Confirm to apply? (Press Ctrl-C and answer Y to terminate)
pause
echo.
echo.

if exist %Systemroot%\notepad.original.exe goto exist_notepad2_already
if exist %Systemroot%\System32\notepad.original.exe goto exist_notepad2_already
takeown /f %Systemroot%\notepad.exe
takeown /f %Systemroot%\System32\notepad.exe
icacls %Systemroot%\notepad.exe /grant "%username%":f
icacls %Systemroot%\System32\notepad.exe /grant "%username%":f
IF EXIST %SYSTEMROOT%\SysWOW64 (bcdedit.exe -set loadoptions    "DDISABLE_INTEGRITY_CHECKS")
copy %Systemroot%\notepad.exe %Systemroot%\notepad.original.exe
copy %Systemroot%\System32\notepad.exe %Systemroot%\System32\notepad.original.exe  
echo.
echo Original notepad.exe has been renamed to "notepad.original.exe" in its original folder.
echo.
copy %~dp0\notepad2.exe %Systemroot%\notepad.exe /y
copy %~dp0\notepad2.exe %systemroot%\System32\notepad.exe /y
echo.
echo Notepad2 installation is completed. 
echo If no error occurred, Notepad2 will now replace all Notepad functions.
echo.
pause
exit

:exist_notepad2_already
echo.
echo INSTALLED NOTEPAD2  ALREADY!.
echo.
pause
exit

这只会覆盖Windows的记事本可执行文件。此脚本有一个原因必须更改默认特权并禁用完整性检查:这会损害系统的完整性。Notepad.exe可能不是很关键,脚本确实可以进行备份,但是我非常建议您使用一种更干净,更安全的程序来代替。
马克·托马斯

-1

在Windows XP中,我使用了该网站上的脚本来使其正常工作。您需要先执行这些注册表功能,然后将.vbs脚本放入C:\ Program Files \ notepad ++目录,

'// USAGE
'// 1)
'// Navigate to registry key HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
'//
'// 2)
'// Add new subkey with the name of the executable you want replaced (no path) e.g. notepad.exe
'//     This step is what tells windows to use the replacement exe, to undo simply delete the key you created
'//
'// 3)
'// Create new Sting Value called Debugger
'//
'// 4)
'// Modify value and enter wscript.exe "path to this vbs" e.g. wscript.exe "C:\Program Files\notepad++\npp.vbs"
'//

这是VBScript:

Option Explicit

'// Declare variables
Dim x        ' old bad habit, I use this for general temporary variables
Dim W        ' This will be the WSHShell object
Dim sCmd    ' This will be the command to run

'// Create WSHShell object
Set W = CreateObject("WScript.Shell")

'// Set the working directory to the one this script resides in
'// If the target program doesn't care where it is run from then you don't need the following line
W.CurrentDirectory = LeftB(WScript.ScriptFullName, LenB(WScript.ScriptFullName) - LenB(WScript.ScriptName))

'// Set the target executable
sCmd = "notepad++.exe"

'// Skip the first argument but grab all the rest
If WScript.Arguments.Count > 1 Then
    For x = 1 To WScript.Arguments.Count - 1
        '// If the argument contains a space then enclose it with ""
        If InStrB(WScript.Arguments(x), " ") Then
            sCmd = sCmd & " """ & WScript.Arguments(x) & """"
        Else
            sCmd = sCmd & " " & WScript.Arguments(x)
        End If
    Next
End If

'// Run the command
'// The number after the command determines how the window should be initially (google WSHShell.Run)
'// The boolean at the end determines whether this script should run the target then exit or wait until the target exits
W.Run sCmd, 1, False
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.