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\"""