Association de fichier et déploiement ClickOnce

Lucien88VB6 - 28 mai 2013 à 15:34
 Utilisateur anonyme - 30 mai 2013 à 14:05
Bonjour,

J'ai une application winform en VB.Net express 2010
j'utilise le tableau d'association de fichier dans les options de déploiement (onglet "Publier" dans les propriétés de mon projet) pour faire reconnaître mon extension ".crith" lors de l’installation.

jusqu'à la j'y arrive, mes fichiers ".crith" ont bien mon logo et la description que je rentre dans le tableau.
Quand je double click sur l'un de mes fichiers, mon application se lance mais n'ouvre pas le fichier sur lequel j'ai clické.

il y a beaucoup de sujets qui traitent de ça, et la solution pour beaucoup est : à l'ouverture de l'application, récupérer le deuxième argument avec la ligne suivante :
Environment.GetCommandlineArgs(1)


hors mon application ne me renvoi qu'un argument qui est l'emplacement de mon application sur l'ordinateur ... et là ça m'avance pas beaucoup !

j'ai très certainement manqué une étape, mais laquelle ?
Je ne trouve pas d'information sur se qu'il faut renseigner dans la colonne ProgID du tableau d'association de fichier, par défaut j'ai mis %1, peut-être pour ça que ça ne marche pas ?
peut-être faut-il ne pas passer par ce tableau ?

merci d'avance

8 réponses

Utilisateur anonyme
28 mai 2013 à 18:07
Bonjour,

Sans connaitre ton application c'est pas évident, par contre j'ai vu un petit exemple chez msdn
' Sample for the Environment.GetCommandLineArgs method
Imports System

Class Sample
   Public Shared Sub Main()
      Console.WriteLine()
      '  Invoke this sample with an arbitrary set of command line arguments.
      Dim arguments As [String]() = Environment.GetCommandLineArgs()
      Console.WriteLine("GetCommandLineArgs: {0}", [String].Join(", ", arguments))
   End Sub 'Main
End Class 'Sample
'
'This example produces the following results:
'
'C:\>GetCommandLineArgs ARBITRARY TEXT
'
'GetCommandLineArgs: GetCommandLineArgs, ARBITRARY, TEXT
'



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 mai 2013 à 09:48
Voir aussi My.Application.CommandLineArgs

Le "%1" est le nom de variable utilisée dans les commandes Batch (console) pour identifier le nom du premier paramètre qui suit le nom du Batch (%2 pour le second ...)
Donc, tu as bien fait.
0
Lucien88VB6
29 mai 2013 à 19:12
Bonsoir,

Merci de vos réponses, mais soit elle ne marche pas, soit je ne les met pas correctement en oeuvre.
Alors pour la solution de Jack :
j'ai glissé la ligne suivante dans le load de mon application :

MsgBox([String].Join(", ", My.Application.CommandLineArgs))


il n'y a pas d'enfant à la collection, alors peut-être que j'oublie une partie du code ?

Pour la solution de acive :

J'ai créé une nouvelle classe avec :

Public Shared Sub Main()

        Dim Argument As [String]() = Environment.GetCommandLineArgs()
        Console.WriteLine("GetCommandLineArgs: {0}", [String].Join(", ", Argument))
        MsgBox([String].Join(", ", Argument))

    End Sub


dans le load de ma form principal j'appel ma fonction Call Sample.Main()

je déploie, lance le setup, dblClick sur l'un de mes fichiers et il me renvoi toujours que l'emplacement de mon application sur le disque ...

je ne vois pas d'autre poste sur ce problème alors que si problème il y a il devrait y en avoir ... mais que me manque t'il ?
0
Lucien88VB6
29 mai 2013 à 23:40
Il semble qu'ils est trouvés une solution dans ce poste :
www.developpez.net/forums/.

Mais ne comprend pas la solution proposé ...
0

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

Posez votre question
Utilisateur anonyme
30 mai 2013 à 02:08
Bonjour,

Mais ne comprend pas la solution proposé ...


Cela n'a aucun rapport avec un programme BASIC. C'est une manipulation à faire dans Windows.
0
Utilisateur anonyme
30 mai 2013 à 02:13
Et puis, si tu fais un clic-droit sur ton fichier crith et que tu choisis "Ouvrir Avec" et que tu fais l'opération Choisir le programme par défaut et que tu coches Toujours utiliser ce programme etc.., tu fais la manipulation équivalente à celle de Développez.com
0
Lucien88VB6
30 mai 2013 à 10:54
Je parlais de la dernière partie du sujet :

Quand ton logiciel s'installe il doit également indiquer a windows que les fichiers portant l'extension choisi doit être ouvert par ton programme.

Prenons un exemple :

Tu veux que ton programme ouvre les fichiers portant l'extension ".txt".

1 - Fais un cliques droit sur ton projet de déploiement et cliques sur "Afficher - Types de fichiers".

2- Fais un clique droit sur "Types de fichiers sur l'ordinateur cible" et cliques sur "Ajouter un type de fichier"

3- Dans les propriétés de ton nouveau type de fichiers met les infos suivantes : Name Document TXT , Command La sortie principale de ton application , Extension = txt. Tu peux aussi ajouter une description ou un icone personnalisé pour les documents txt.

4- Dans les propriétés de "&Open" tu dois avoir dans argument "%1" ce qui veut dire qu'il prendra le premier argument comme étant le fichier à ouvrir.
:wink:


mais il me semble que ce sont des options qui ne sont pas disponible avec la versions Expresse de Visual studio
0
Utilisateur anonyme
30 mai 2013 à 14:05
Bonjour,
Il me semble que selon les diverses versions de vb, la procédure est différente.
On tombe souvent sur des explications concernant vb2005, ce qui se fait déjà différemment dans VB2010.

J'ai vu CETTE PAGE chez MSDN
Je pense que ça pouurait t'aider


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Rejoignez-nous