Notepad++

Présentation

Notepad++ comme notepad2 est programmé en C et utilise sintilla

Il est disponible sur notepad++.

Il comprend de nombreux plugins:

  • Converter
  • Light Explorer (mieux que Explorer)
  • Runme
  • Spell-Checker
  • ...

remplacement de notepad par notepad++

créer un fichier C:/ProgramFiles/Notepad++/npp.hta contenant:

<html>
<head>
<HTA:APPLICATION
    ID="NotepadHTA"
    APPLICATIONNAME="NotepadHTA"
    SINGLEINSTANCE="yes"
    CAPTION="No"
    CONTEXTMENU="No"
    MAXIMIZEBUTTON="No"
    MINIMIZEBUTTON="No"
    SYSMENU="No"
    BORDER="none"
    INNERBORDER="No"
    SCROLL="No"
    WINDOWSTATE="Minimize">
</head>

<SCRIPT Language="VBScript">

'On réduit la fenêtre à 0
Me.ResizeTo 0,0

Set objShell = CreateObject("Wscript.Shell")
Set objSysEnv = objShell.Environment("SYSTEM")
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Récupération du chemin de l'exécutable de Notepad++ en fonction du système.
'Dans la foulée, on récupère également le chemin de ActiverFenetreNotepad++.exe.
'ActiverFenetreNotepad++.exe est un script AutoIt qui se charge
'd'activer la fenêtre de Notepad++ à son ouverture
'pour la passer au premier plan
If objSysEnv("PROCESSOR_ARCHITECTURE") = "AMD64" Then
    '64 bits
    strCheminNotepad = objShell.ExpandEnvironmentStrings("%PROGRAMFILES(X86)%") & "\Notepad++\Notepad++.exe"
    strCheminActiver = objShell.ExpandEnvironmentStrings("%PROGRAMFILES(X86)%") & "\Notepad++\ActiverFenetreNotepad++.exe"
Else
    '32 bits
    strCheminNotepad = objShell.ExpandEnvironmentStrings("%PROGRAMFILES%") & "\Notepad++\Notepad++.exe"
    strCheminActiver = objShell.ExpandEnvironmentStrings("%PROGRAMFILES%") & "\Notepad++\ActiverFenetreNotepad++.exe"
End If

Sub Window_onLoad
    'On récupère la ligne de commande en enlevant les éventuels espaces résiduels en bout de chaine
    strLigneCommande = Trim(NotepadHTA.commandLine)
    'On passe en minuscule pour lever toute ambiguïté
    strLigneCommande = LCase(strLigneCommande)
    'On récupère la position de "\system32\notepad.exe""
    position = InStrRev(strLigneCommande, "\system32\notepad.exe" & chr(34))
    'On rajoute le nombre de caractères compris dans "\system32\notepad.exe"", soit 21
    position = position + 21
    If position < len(strLigneCommande) Then
        'S'il y a du texte après, il contient le chemin du fichier lancé qu'on s'empresse de récupérer
        strCheminFichier = Right(strLigneCommande, len(strLigneCommande) - position)
        'On enlève les guillemets éventuels
        strCheminFichier = Replace(strCheminFichier, chr(34), "")
        'On enléve les éventuels espaces résiduels en bout de chaine
        strCheminFichier = Trim(strCheminFichier)
        'et on l'ouvre avec Notepad++
        objShell.Run Chr(34) & strCheminNotepad & Chr(34) & " " & chr(34) & strCheminFichier & Chr(34), 1, False
    Else
        'Si l'utilisateur a lancé le Bloc-Note de Windows, on ouvre simplement Notepad++
        objShell.Run Chr(34) & strCheminNotepad & Chr(34), 1, False
    End If
    'Lancement de ActiverFenetreNotepad++.exe pour passer Notepad++ au premier plan
    If objFSO.FileExists(strCheminActiver) Then
        objShell.Run Chr(34) & strCheminActiver & Chr(34), 0, False
    End If
    'On quitte avec la conscience du travail bien fait
    Me.Close()
End Sub

</SCRIPT>
<body>
</body>
</html>

puis modifier la base de registre (regedit)

Et que voilà les modifications de registre à opérer sur une machine en 32 bits :

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]
"Debugger"="\"C:\\Windows\\System32\\mshta.exe\" \"C:\\Program Files\\Notepad++\\npp.hta\""

Et pour un système en 64 bits :

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]
"Debugger"="\"C:\\Windows\\System32\\mshta.exe\" \"C:\\Program Files\\Notepad++\\npp.hta\"""