[Delphi ou autre] - Action custom associée à un type de fichier ...
- Action custom associée à un type de fichier ... [Delphi ou autre] - Programmation
MarshPosté le 15-02-2001 à 13:56:44
Un p'tit problème vachement intéressant :
Tout le monde sait comment associer une nouvelle action à un type de fichier, dans le menu contextuel de l'explorateur de Windows : par exemple, pour les fichiers .TXT, dans la base de registres, on a la clé HKEY_CLASSES_ROOT\txtfile\shell\ qui contient des sous-clés pour chaque action, avec comme valeur chaîne par défaut la commande à exécuter. Par exemple pour les fichiers texte, on a la commande open suivante : "NOTEPAD.EXE %1", avec %1 le nom du fichier sur lequel on a cliqué (ou %L pour gérer les noms longs, soit dit en passant). Bon, jusque là pas de problème : on peut associer une commande à un type de fichier, qui sera utilisé par un programme à nous, par exemple "C:\My Docs\MyProg.exe %L".
MAIS maintenant, le problème est le suivant : quand on sélectionne PLUSIEURS fichiers de même type et qu'on choisit notre commande custom, notre programme est lancé autant de fois de suite, avec à chaque fois un des fichiers en paramètre ... c'est le cas pour notepad, qui ne peut ouvrir qu'un seul fichier à la fois. Ce n'est pas le cas pour Winamp, qui peut charger plusieurs MP3 d'un coup dans sa playlist.
Je sais déjà comment éviter d'avoir plusieurs instances d'un même prog. lancées en même temps, donc le problème est : comment faire pour que tous les fichiers en paramètre soient passés à la même instance du programme ???
Comment une instance d'un prog. peut-elle passer une info de type texte (le nom du fichier) à une autre instance de ce même prog. ??
Ou bien, solution encore plus rapide, peut-être y a-t-il un mot-clé à mettre dans la description de la commande dans la base de registres, un truc qui remplacerait le %1, et qui représenterait les noms de tous les fichiers d'un seul coup ...
Voila, si vous êtes arrivé jusqu'ici vous pouvez rentrer chez vous ...
--------------- "D'abord arrêter le chimique, et après reprendre l'école ..."
Marsh Posté le 15-02-2001 à 13:56:44
Un p'tit problème vachement intéressant :
Tout le monde sait comment associer une nouvelle action à un type de fichier, dans le menu contextuel de l'explorateur de Windows : par exemple, pour les fichiers .TXT, dans la base de registres, on a la clé HKEY_CLASSES_ROOT\txtfile\shell\ qui contient des sous-clés pour chaque action, avec comme valeur chaîne par défaut la commande à exécuter. Par exemple pour les fichiers texte, on a la commande open suivante : "NOTEPAD.EXE %1", avec %1 le nom du fichier sur lequel on a cliqué (ou %L pour gérer les noms longs, soit dit en passant). Bon, jusque là pas de problème : on peut associer une commande à un type de fichier, qui sera utilisé par un programme à nous, par exemple "C:\My Docs\MyProg.exe %L".
MAIS maintenant, le problème est le suivant : quand on sélectionne PLUSIEURS fichiers de même type et qu'on choisit notre commande custom, notre programme est lancé autant de fois de suite, avec à chaque fois un des fichiers en paramètre ... c'est le cas pour notepad, qui ne peut ouvrir qu'un seul fichier à la fois. Ce n'est pas le cas pour Winamp, qui peut charger plusieurs MP3 d'un coup dans sa playlist.
Je sais déjà comment éviter d'avoir plusieurs instances d'un même prog. lancées en même temps, donc le problème est : comment faire pour que tous les fichiers en paramètre soient passés à la même instance du programme ???
Comment une instance d'un prog. peut-elle passer une info de type texte (le nom du fichier) à une autre instance de ce même prog. ??
Ou bien, solution encore plus rapide, peut-être y a-t-il un mot-clé à mettre dans la description de la commande dans la base de registres, un truc qui remplacerait le %1, et qui représenterait les noms de tous les fichiers d'un seul coup ...
Voila, si vous êtes arrivé jusqu'ici vous pouvez rentrer chez vous ...
---------------
"D'abord arrêter le chimique, et après reprendre l'école ..."