Ouverture avec selection de programme sur un ContextMenuStrip [Résolu]

Signaler
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour

Je dispose d'un datagridview dressant la liste de fichiers. Sur l'évènement click droit,je voudrais permettre à l'utilisateur (à travers un ContextmenuStrip) d'ouvrir le fichier en selectionnant l'application voulue pour l'ouvrir, comme le fait Windows avec "ouvrir avec...".
Quelqu'un peut-il me mettre sur la voie ?

Merci d'avance

13 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
voila... un exemple d'application en C# : http://www.csharpfr.com/code.aspx?ID=35651

Sébastien FERRAND
[MVP Visual C#]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
System.Diagnostics.Process.Start

Sébastien FERRAND
[MVP Visual C#]
Messages postés
107
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
15 juillet 2009

System.Diagnostics.Process.Start("c:\monrépertoire\monfichier.ext")

>> NiCoMpX <<
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci pour cette aide mais ce code ne permet pas de choisir parmis plusieurs programmes pour ouvrir un fichier. Ou peut être que je ne l'utilise pas de la bonne façon...
Je voudrais proposer dans un ContextmenuStrip une option "Ouvrir avec" qui déploie une nouvelle liste avec la liste des programmes installés sur le PC pour permettre à l'utilisateur d'ouvrir un meme fichier avec differents programmes.

Merci d'avance
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
voici un bout de code en VB6 qui devrait faire l'affaire : http://mskadu.freeservers.com/articles/vb/openwith.htm

Sébastien FERRAND
[MVP Visual C#]
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci beaucoup, je vais tacher d'appliquer ça au C#...
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Salut, il me semble que la bdr stocke les exe capables de lancer un
fichier. Il suffit d'aller la lire pour récuperer une liste que tu
affiches ensuites dans ton ContextmenuStrip.

Pour l'exécution tu utilises toujours System.Diagnostic.Process.

Process MyProc = new Process;

MyProc.StartInfo("exe choisi", "chemin du fichier");

MyProc.Start();
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Double oups ,j'ai oublieé le chemin de la clé et sebmafate est plus rapide



pour un gif par exemple :

Nom de la
clé :
HKEY_USERS\S-1-5-21-3048789951-819875089-384861176-2396\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.gif\OpenWithList
Messages postés
107
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
15 juillet 2009

Quand je veux executer ce code, j'ai une erreur : séquence d'échappement non reconnue

Process MyProc = new Process();
MyProc.StartInfo("c:\...\WINWORD.EXE", "C:\test.doc");
MyProc.Start();

>> NiCoMpX <<
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
bah ouaih... faut soit doubler les \, soit mettre un @ de les string

Sébastien FERRAND
[MVP Visual C#]
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci pour toutes ces reponses, j'examine vos suggestions...
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Le code de la source : http://www.csharpfr.com/code.aspx?ID=35651 marche nickel et est vraiment simple à utiliser.

Merci
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
je l'ai fait pour ca ;)

Sébastien FERRAND
[MVP Visual C#]