Action groupée pour une sélection de fichiers
J'ai voulu créer un ptit programme permettant d'enlever un mot, dans le nom d'une liste de fichiers sélectionnés.
Exemple:
si dans un répertoire j'ai une liste de fichier comprenant le mot "vers.", je souhaite pouvoir le retirer en sélectionnant ces fichiers puis en faisant un clic droit et en choisissant une commande personnalisée, par exemple
"enlever des mots"
J'ai créé une clé dans la BDR Windows [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell
puis une autre
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\TraiteNomsFichiers
de valeur
"Enlever des mots"
et enfin au sein de cette clé une autre clé "command" de valeur: "C:\WINDOWS\traite.exe --1--%1"
j'ai réalisé un programme traite.exe compilé dans "C:\WINDOWS" récupérant les arguments de la ligne de commande.
Le permier argument: --1 détermine l'action à réaliser (ici enlever un mots dans une liste de fichiers, le programme est destiné à permettre d'autres opérations)
Le deuxième argument envoie l'adresse du fichier sélectionné ce qui permet d'agir sur son nom dans le programme (je modifie le fichier avec Scripting.FileSystemObject).
Le problème est que l'appli développée ainsi exécute la procédure pour chaque fichier. Ainsi si 10 fichiers sont sélectionnés, le programme va me demander 10 fois quel est le mot à enlever.
C'est une erreur conceptuelle que j'ai commise. De plus une action dans le clic droit semble s'exécuter individuellement pour chaque fichier sélectionné.
Est il possible de modifier ce comportement? peut être en ajoutant une nouvelle clé dans HKCR ordonnant d'exécuter une seule fois l'action pour l'ensemble des fichiers?
Et comment récupérer dans un tableau l'ensemble des adresses des fichiers sélectionnés? %1 ne donne que l'adresse d'un fichier?
Sinon comment procèderiez vous?
Je sais qu'il existe des programmes pour le faire, mais leur principe en vb serait une userform avec un contrôle explorer, ce que je voudrais éviter.
Merci d'éclairer ma lanterne.