Intercepter nom du fichier dans Ouvrir avec... par l'Explotaeur

Résolu
Notpa
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
- 18 sept. 2020 à 18:31
Notpa
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
- 21 sept. 2020 à 15:55
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

cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
19 sept. 2020 à 11:41
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
0
Notpa
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
1
19 sept. 2020 à 19:11
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
0
JeuDuTaquin
Messages postés
221
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
28 avril 2022
7
19 sept. 2020 à 19:46
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é.
0
Notpa
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
1
19 sept. 2020 à 21:03
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.
0
JeuDuTaquin
Messages postés
221
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
28 avril 2022
7
Modifié le 19 sept. 2020 à 23:43
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Notpa
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
1
20 sept. 2020 à 09:25
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
0
Notpa
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
1
20 sept. 2020 à 09:55
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 !
0
Notpa
Messages postés
125
Date d'inscription
dimanche 13 janvier 2019
Statut
Membre
Dernière intervention
8 janvier 2021
1
21 sept. 2020 à 15:55
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
0