Intercepter nom du fichier dans Ouvrir avec... par l'Explotaeur [Résolu]

Signaler
Messages postés
116
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2020
-
Messages postés
116
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2020
-
Bonjour,

Dans l'explorateur de fichiers, il y a une option via un clic droit : Ouvrir avec...
Là, on cherche le programme qui lira ce fichier.

Si c'est un programme en VB6 qui est appelé, est-il possible que dans le code dudit programme on récupère le nom du fichier sélectionné ?

Par exemple; Ouvrir le fichier Toto.txt avec le programme pgmvb6.exe et intercepter dans le code du programme le nom Toto.txt.

Rien trouvé sur le net. Possible ou pas ?

Merci d'avance

Notpa

7 réponses

Messages postés
6983
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 octobre 2020
114
Bonjour,

c'est possible en VB.Net. Voir la marche à suivre dans ce programme

https://codes-sources.commentcamarche.net/source/view/55226/1305141

Il faut tout d'abord créer une clé dans le registre pour ajouter le menu contextuel qui permettra d'ouvrir ton exe.
Ensuite rechercher le chemin du fichier sur lequel on fait le clic droit. Après l'action que l'on veut faire sur ce fichier.

Je ne sais pas si cela est transposable en VB6

Bon courage
Messages postés
116
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2020
1
Merci Le Pivert,

Je n'ai pas VB.Net (j'ai laissé tomber : trop gourmand en ressources). De plus, ce programme doit être livré à d'autres personnes : je ne peux pas leur demander de modifier la base de registres !

Je vais attendre encore un peu. Si je n'ai pas de solution pour intercepter le nom de fichier, je vais utiliser Drive/Dir/List boxes pour accéder au fichier.

Merci quand même !

Notpa
Messages postés
190
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
20 octobre 2020
5
En deux mots, tu veux faire un drag&drop sur l'icône de ton application ?

Il faut utiliser la variable COMMAND$ pour avoir les arguments...
Sinon, il faut faire un scrit pour enregistrer les clés dans le registre pour ajouter une commande dans le menu (à l'installation) ou toujours utiliser le programme avec le type d'argument donné.
Messages postés
116
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2020
1
Hello !

Si j'ai bien compris, l'utilisation de COMMAND$ est la suivante :

monExeVB6.exe C:\Le réperrtoire\le fichier.xxx
et le contenu de Command$ te renverra
C:\Le réperrtoire\le fichier.xxx

Le problème est qu'il faut spécifier le nom du fichier lors de l'exécution du programme.
Je veux seulement récupérer ce nom dans le programme appelé par Ouvrir avec...

A première vue, impossible.
Messages postés
190
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
20 octobre 2020
5
Que ce soit en glissant et relâchant un fichier sur ton exécutable ou une icône, ou en utilisant "Ouvrir avec", Windows va envoyer le nom du fichier exclave vers le fichier maître du type monExeVB6.exe C:\Le réperrtoire\le fichier.xxx.
Mais dans certains cas, il te faudra éliminer quelques guillemets ajoutés pas Windows.

Fais un projet vierge avec seulement une textbox, puis sur le Form_load, textbox.text=command$

Puis tu compiles et tu glisses un fichier dessus... ou tu envoies un fichier texte avec un "Ouvrir avec".
Le fichier exclave s'affichera.
Messages postés
116
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2020
1
Bonjour JeuDuTaquin

Ça marche et ça ne marche pas. Je m'explique. Si je fais un drag-and-drop d'une base Access sur le programme, c'est tout bon :


Par contre, si je fais un Ouvrir avec.. pour cette même base Access, ça coince :


Mon futur programme va utiliser des bases Access dans lesquelles j'extrais les nom de tables et des champs, ce qui varie avec chaque base.

Bon, le drag-and-drop fonctionne parfaitement, merci ! Je vais voir si ça suffit...

A+

Notpa
Messages postés
116
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2020
1
Re,

J'ai fait un test avec un bête fichier TXT : même erreur. Bon, je crois que je vais me contenter du drag-and-drop, plus rapide qu'un Ouvrir avec.. Et de plus, lui, il fonctionne !
Messages postés
116
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2020
1
Bonjour à tous !

Je ferme le sujet. Mon programme va utiliser la COMMAND$ s'il est appelé via un drag-and-drop. Si c'est par un double-clic, je teste si COMMAND$ est à Null, alors j'utilise Drive/Dir/List boxes pour accéder au fichier.

Merci de vos conseils

Notpa