Action groupée sur une sélection de fichier

Présentation
L'ajout de clef dans l'éditeur de base de registre de windows
permet de rajouter une entrée au menu contextuel
pour cela il faut rajouter (si elle n'existe pas ) la clef shell:

HKEY_CLASSES_ROOT\AllFilesystemObjects\shell

une clef pour définir le message associé a la commande

HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ChaineCommande

avec pour valeur par défaut le texte a afficher dans le menu contextuel ici :

"Ajoute fichier liste commande"
et sous cette clef une autre nommé command et dont la valeur par défaut reprend le nom de l'exécutable a associer au menu contextuel ( %1) permettant de passer en paramètre a cet exécutable le nom du fichier sélectionné :
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ChaineCommande\command]

@="D:\\Dvp\\PrjChaineCommande\\prjChaineCommande.exe %1"


Le fichier .reg complet (qui peu être utilisé pour importer les modification devient :
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell]
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ChaineCommande]
@="Ajoute fichier liste commande"
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ChaineCommande\command]
@="D:\\Dvp\\PrjChaineCommande\\prjChaineCommande.exe %1"

cependant lors de l'exécution de la commande si plusieurs fichiers sont sélection l'exécutable est appelé autant de fois qu'il y as de fichier avec a chaque appel en paramètre le nom d'un des fichiers.
pour regrouper les traitements a appliquer au fichier, je vous propose le principe suivant :
Lors du premier appel, le programme se met en position pour traiter une liste de fichier ..
Lors des appels suivant c'est à dire lorsqu'une instance est déjà en route .. la nouvelle instance du programme envoi un message à la première instance déjà en marche avec le nouveau nom de fichier a traiter et se ferme ... ensuite la première instance n'as qu'as prendre le relais pour traiter effectuer le traitement du fichier.

Le programme utilise la propriété :
App.PrevInstance
pour savoir si une instance est déjà en route ou pas ...
ensuite pour communiquer avec l'instance déjà en route une communication et établi entre les programmes grâce au composant DiConverse6 disponible ici :
[VB6]Echange de textes entre 2 applications:

Sélection de la commande dans le menu contextuel :
Téléchargement
0  0 
Détails
Catégories : Gestion de fichiers
Avatar de SfJ5Rpw8
Expert éminent sénior
Voir tous les téléchargements de l'auteur
Licence : Non renseignée
Date de mise en ligne : 3 décembre 2010





 
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.