Ouvrir un fichier avec un programme [Résolu]

Signaler
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008
-
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008
-
Bonjour,

J'aimerais savoir
si il est possible, à partir de C#, d'ouvrir  un fichier avec un
programme qui n'est pas le programme par défaut ? Par exemple ouvrir un fichier .doc avec le bloc-note alors que word est le programme par défaut. Est-ce possible ?
Mathmax
A voir également:

9 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
55
Salut,
Tu peux peut-être utiliser la méthode WaitForInputIdle de l'object Process...
A vrai dire je n'ai jamais essayé, donc je suis ne suis pas sur de ce qu'elle fait.

<hr size= "2" /> VC# forever
=13319
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Pas sûr que ce soit imparable mais ça semble fonctionner correctement :

if ( Process.GetProcessesByName( "Notepad" ).Length > 0 )
    MessageBox.Show( "Notepad est déja ouvert" );
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Salut, c'est possible, suffit de passer en paramètre le fichier à ouvrir dans la surcharge de la méthode Process.Start mais faut il encore que le programme soit capable d'ouvrir le fichier en question.. Notepad ne sait pas lire les fichiers *.doc

System.Diagnostics.Process.Start( "wordpad.exe", "C:\\file.doc" );
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

Merci ça marche. L'exemple des fichiers .doc était mal choisi en effet. Je cherchais en fait à ouvrir des page html dans Opera qui n'est pas mon navigateur par défaut. Le problème que j'ai maintenant est qu' Opera envoi un message d'erreur quand je demande à la suite plusieurs ouverture de fichiers .html avec Process.Start. Opera refuse en effet de s'ouvrir plusieurs fois afin d'éviter d'avoir plusieurs pages ouvertes en même temps. En fait ce qu'il faudrait c'est ouvrir le navigateur, attendre qu'il soit bien ouvert, puis lançer les applications les unes à la suite des autres. Une fois que le navigateur est bien ouvert, lancer plusieurs ouverture de fichier avec Process.Start ne pose pas de problème. Les fichiers s'ouvrent alors à chaque fois dans un nouvel onglet. J'ai pu le tester en éxécutant le programme en le débugant et en attendant suffisament mais j'aimerais que mon programme détècte automatiquement quand Opera est bien ouvert (qu'il se mette en pose pendant son chargement). Est-ce possible ?

Mathmax
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

J' ai essayé et j'obtiens le message d'erreur suivant :

Error    1    Static member 'System.Diagnostics.Process.Start(string)' cannot be accessed with an instance reference; qualify it with a type name instead    D:\Mes documents\Visual Studio 2005\Projects\ViewOrkosNews\ViewOrkosNews\Form1.cs    18    13    ViewOrkosNews

voici mon bout de code :
          
Process lancementOpera = new Process();
lancementOpera.Start(@"C:\Program Files\Opera\Opera.exe");

Je comprends pas ce que celà veux dire...

Mathmax
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Je pense aussi qu'il faut essayer avec WaitForInputIdle.

Tu utilises une méthode statique avec une instance de Process !!
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

ok j'ai compris. Il n'accèpte pas une instance de la classe. Je corrige en faisant comme celà :
            Process lancementOpera = new Process();
            lancementOpera.StartInfo.FileName = @"C:\Program Files\Opera\Opera.exe";
            lancementOpera.Start();

Mathmax
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

Dernière chôse : est-il possible de tester si opera est déjà ouvert ?

Mathmax
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

merci beaucoup. Dans mon cas ça marche en tout cas !

Mathmax