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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
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 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 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 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 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
Rejoignez-nous