'REMPLACEMENT PAR REGISTRE DU BLOC-NOTES PAR METAPAD 'PARTICULARITE (et avantage) : tous les utilisateurs sont concernes. 'Rappels : ' - un utilisateur dispose de Panneau de configuration\Tous les Panneaux de configuration\Programmes par defaut ' - Bloc-notes ne fait pas partie de la liste des programmes par defaut ' - Par consequent, pour Bloc-notes, un utilisateur ne pourra que "Definir les associations" 'Certains remplacent notepad.exe par une copie de metapad.exe dans Windows 'Cette methode fonctionne mais n'est ni souple ni durable 'SOLUTION = REGISTRE + SCRIPT.VBS 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options 'est une clef du registre qui permet d'operer avec beaucoup de souplesse. 'Principe: 'Une valeur Debugger est ajoutee dans le registre pour executer le script a la place de notepad.exe 'Quand notepad.exe est invoque, le script recupere les parametres et les transmet au programme voulu 'Conditions : ' Le script doit porter le nom du programme qui remplace notepad, METAPAD.EXE => METAPAD.VBS ' METAPAD.VBS doit se trouver dans le meme repertoire que METAPAD.EXE ' =============== PLUS D'INFOS EN FIN DE SCRIPT ========== Option Explicit Dim Shell Dim x 'compteur dans le For Next plus bas Dim Commande Dim NomCompletDuScript Dim NomCompletDuScriptSansExtension Dim NomDuProgramme Set Shell = CreateObject("WScript.Shell") NomCompletDuScript = WScript.ScriptFullName NomCompletDuScriptSansExtension = Left(NomCompletDuScript, InStrRev(NomCompletDuScript, ".")) NomDuProgramme = NomCompletDuScriptSansExtension+"exe" Commande = """"&NomDuProgramme&"""" 'ENCADRER LES ARGUMENTS AVEC DES GUILLEMETS SI PRESENCE D'ESPACES ET LES AJOUTER A LA COMMANDE If WScript.Arguments.Count > 1 Then For x = 1 To WScript.Arguments.Count - 1 If InStrB(WScript.Arguments(x), " ") Then Commande = Commande & " """ & WScript.Arguments(x) & """" Else Commande = Commande & " " & WScript.Arguments(x) End If Next End If 'EXECUTION DE LA COMMANDE AVEC SES ARGUMENTS ' Syntaxe de object.Run : ' object.Run (strCommand, [intWindowStyle], [bWaitOnReturn]) []=pas obligatoire ' [bWaitOnReturn] non obligatoire laissee vide car pas utile ici ' intWindowStyle = 4 affiche la fenetre a sa taille et a son emplacement recents. ' C'est pratique, il y a du choix http://ddg.gg/?q=intWindowStyle Shell.Run Commande, 4 'NETTOYAGE DES VARIABLES ET FIN DU SCRIPT set x = Nothing set Shell = Nothing set Commande = Nothing set NomCompletDuScript = Nothing set NomCompletDuScriptSansExtension = Nothing set NomDuProgramme = Nothing Wscript.Quit '====================================== '============ INFORMATIONS ============ '====================================== 'SOURCE 'www.vistax64.com/tutorials/244527-programs-replace-system-program-without-modifying-system-files-permissions.html 'REGISTRE 'La clef Image File Execution Options permet d'agir sur l'execution de programmes : 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options 'Pour intercepter l'execution de notepad.exe (le Bloc-notes) il faut ajouter sa clef: ' ...\Image File Execution Options\NOTEPAD.EXE 'Dans NOTEPAD.EXE creer une valeur chaine nommee Debugger 'Le contenu de Debugger permet d'executer METAPAD.vbs avec la commande WSCRIPT.EXE 'Encadrer par precaution le chemin par des guilemets ; exemple : ' wscript.exe "D:\Mes Utilitaires\METAPAD\METAPAD.vbs" 'Prendre l'habitude d'utiliser des guillemets pour ne pas avoir d'erreur en cas de presence d'espaces. 'FONCTIONNEMENT 'Image File Execution Options permet de jouer sur l'execution d'un programme. 'Le nom de l'executable doit figurer en tant que sous-clef. 'En cliquant sur un fichier associe a Bloc-notes (texte.txt par exemple), Windows invoque notepad.exe ' Au lieu d'executer notepad.exe le systeme execute le contenu de ' Image File Execution Options\NOTEPAD.EXE/Debugger 'REMARQUES 'Si une association avait ete mise en place le detournement de Bloc-notes ne fonctionne pas puisque notepad.exe n'est pas invoque ; il faut supprimer l'association. Par exemple si on avait associe l'extension .txt a un autre editeur, c'est lui qui continuera a ouvrir les fichiers textes. En supprimant cette association, les fichiers sont a nouveau associes a Bloc-notes, et le detournement au profit de METAPAD.exe fonctionnera. 'REVENIR A BLOC-NOTES 'Pour que METAPAD ne demarre plus a la place de Bloc-notes : 'Dans le registre renommer NOTEPAD.EXE ou Debugger ' ou supprimer Debugger ' ou vider son contenu 'Ma methode preferee est de renommer Debugger : ' Debugger-Notepad++ ; Debugger-Metapad ; etc.