Skip to main content

Wie ersetze ich notepad.exe mit notepad++

Notepad++ ist ein recht nützlicher Editor für Windows, sollten Sie diesen noch nicht kennen schauen Sie doch hier vorbei : http://notepad-plus-plus.org/.

Wenn Sie sich einmal an diese neuen Möglichkeiten gewohnt haben, möchten Sie diesen Editor sicher gerne immer anstelle des normalen Notepad's verwenden.

Hier stellen wir eine Möglichkeit dafür vor :


( Getested mit Windows 7 ,8,8.1   x86 and x64 )

Wie verwende ich das Script ?

Der Launcher benutzt  einen Registrierungsschlüssel welcher bewirkt, dass Windows alle Programme eines bestimmten Namens ausführen abfängt.

In unserem Fall wollen wir unser Skript ausführen wenn notepad.exe aufgerufen wird, so dass wir dann stattdessen notepad++.exe ausführen können..

INSTALLIEREN:

Installieren Sie Notepad ++ (portable oder Installation mittles setup).

Kopieren Sie in den Script in den Ordner mit dem notepad++.exe und fuehren Sie den Script mit Administrator-Rechten aus ( um die Registry zu schreiben).

(Es macht wohl Sinn, dass niemand kann dieses Skript zu ersetzen oder zu ändern, außer der Administrator sicherstellen)

Deinstallieren:

Doppelklick auf das Skript und lassen Sie es auf den Registrierungsschlüssel entfernen (Admin Rechte nötig)

 

Manuelle Deinstallation:

Löschen Sie den Registrierungsschlüssel HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe

Löschen Sie das Skript

Download

Listing

'// DISCLAIMER 
'// THIS COMES WITH NO WARRANTY, IMPLIED OR OTHERWISE. USE AT YOUR OWN RISK
'// IF YOU ARE NOT COMFORTABLE EDITING THE REGISTRY THEN DO NOT USE THIS SCRIPT
'//
'// NOTES:
'// This affects all users.
'// This will execute for ANY notepad.exe being started on the computer,
'// but the script will try to only replace the 'standard' executables
'// This script also contains a workaround for the buggy HEX-EDITOR 0.9.5
'// Plugin, which crashes if .nfo files are opened.
'//
'// INSTALL:
'// Copy into the Folder containing the notepad++.exe and doubleclick
'// ( with ADMINISTRATOR rights)
'//
'// UNINSTALL:
'// Doubleclick
'//
'// Registry Key being modified
'// HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger
Option Explicit
Dim sCmd,tCmd, x, sArgs, known_notepad
Dim WS
Set WS = CreateObject("WScript.Shell")
tCmd = LeftB(WScript.ScriptFullName, LenB(WScript.ScriptFullName) - LenB(WScript.ScriptName)) & "notepad++.exe"
sCmd = """" & tCmd & """"
if( WScript.Arguments.Count > 1) Then
    sArgs=" " & """"
    For x = 1 To WScript.Arguments.Count - 1
        sArgs = sArgs & WScript.Arguments(x)
        if(x<WScript.Arguments.Count - 1) then
             sArgs = sArgs & " "
        end if
    Next
    sArgs=sArgs & """"
else
    sArgs=""
End If

' Set known_notepad to 1 if the program called was in the original places. Add/change lines as needed.
known_notepad=0
if( WScript.Arguments.Count > 0) Then
  If(StrComp(WScript.Arguments(0), "C:\Windows\notepad.exe" , vbTextCompare)) Then known_notepad=1 End If
  If(StrComp(WScript.Arguments(0), "C:\Windows\System32\notepad.exe" , vbTextCompare)) Then known_notepad=1 End If
Else
  ' If there are no Arguments, this script was double-clicked - so find out whether it should
  ' install or deinstall itself.
 
  On Error Resume Next
 
  ' Install (after asking for permission) if no registry entry exists , and notepad.exe exists
  If( "" = WS.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger" )) Then
    If( CreateObject("Scripting.FileSystemObject").FileExists(tCmd)) Then
      If( vbYES = MsgBox("Configure this script to replace notepad.exe ? ", vbYesNo)) Then
          WS.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger","wscript.exe "&WScript.ScriptFullName,"REG_SZ"
          MsgBox "Registry changed :" & vbNewLine & "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger" & vbNewLine & "to contain" & vbNewLine & WS.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger")
      Else
          MsgBox "Nothing changed."
      End If
    Else
      MsgBox("File not found. " & sCmd & " Copy this script into the directory where notepad++.exe resides.")
    End If
  Else
    ' Remove (after asking for permission) if the registry entry exists
    If( vbYES = MsgBox("Remove the notepad.exe replacement ? ", vbYesNo)) Then
      WS.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger"
      MsgBox "Registry change failed :" & vbNewLine & "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger" & vbNewLine & "still exists" & vbNewLine & WS.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger")
    Else
      MsgBox "Nothing changed."
    End If
  End If
    
  On Error Goto 0
  WScript.Quit
End If
' Work around crashing notepad++ when opening .nfo files
' (BUG in the HEX-Editor Plugin 0.9.5) by running notepad++ without a file first
If(not StrComp( Left(Right(sArgs,5),4), ".nf0", vbTextCompare)) Then
    WS.Run sCmd , 1, False
End If
' Run the replacement if an exe in the original places was called, else run the actual program
If (known_notepad) Then
    WS.Run sCmd & sArgs, 1, True
Else
    WS.Run WScript.Arguments(0) & sArgs, 1, True
End If
'MsgBox("Arg(0) " & WScript.Arguments(0))
WScript.Quit