Ouvrir avec

Résolu
cs_tahiti_bob Messages postés 86 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 27 juin 2007 - 20 juil. 2005 à 18:01
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 21 juil. 2005 à 15:47
Bonjour,

Je suis en train de faire un bloc-note MDI en C#. Cependant, je ne sais pas comment faire pour récupérer le fichier à ouvrir dans le prog lorsque l'on fait "Ouvrir avec"
dans l'explorateur window. Je crois qu 'il faut récupérer un paramètre mais je ne sais pas comment faire.

Merci de votre aide
Tahiti_bob

7 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 juil. 2005 à 10:09
Salut, ah bon c'est la ligne de commande que tu veux !? dans ce cas là il suffit d'écrire "private static void Main( string[ ] args )" le tableau args contient les arguments de la ligne de commande.
3
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 7
21 juil. 2005 à 11:16
Pour récupérer la liste des fichiers :

string
[] args = Environment.CommandLine.Split( '"' );

ArrayList arguments = new
ArrayList();
foreach( string arg in
args )
{
if( arg.Length > 0
)
arguments.
Add( arg );
}

Et tu commence à parcourir à partir de arguments[ 1 ] !!
3
cs_tahiti_bob Messages postés 86 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 27 juin 2007 1
21 juil. 2005 à 13:16
Merci à vous deux pour vos réponse. J'ai opté pour la solution de Ludinski.
Voici mon code :



public Form1()
{
InitializeComponent();

string[] args =
Environment.CommandLine.Split(
'"');

ArrayList tableau =
new
ArrayList();

foreach (
string arg
in args)
{

if (arg.Length > 1)
tableau.Add(arg);
}

//Si glisser d‚placer sur l'exe
if (tableau.Count == 2)
open(tableau[1].ToString());

//Si ouvrir avec
else
if (tableau.Count == 3)
open(tableau[2].ToString());

else
nouveau();
}

Merci encore de votre aide
@++ Tahiti_bob
3
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 7
21 juil. 2005 à 08:28
Salut tahiti_bob,

Je pense qu'il se trouve dans la ligne de commande. Pour la récupérer :
string commandLine = Environment
.CommandLine;
0

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

Posez votre question
cs_tahiti_bob Messages postés 86 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 27 juin 2007 1
21 juil. 2005 à 11:04
Bonjour,

Si j'utilise ta solution LUDINSKI, Environment .CommandLine me retourne le chemin de l'exe, et le chemin du fichier à ouvrir. Comment est ce que je dois faire pour récupérer uniquement le chemin du fichier ?

Avec la solution de Lutinore, j'avais essayé mais sans résultat, voici mon code :

public Form1(
string[] args)
{

string fileName =
null;

foreach (
string argument
in args)
{

if (0 ==
string.Compare(argument,
"/nosplash",
true))
{

MessageBox.Show(
"noSplash = true");
}

else
{
fileName = argument;
}
}
InitializeComponent();



if (fileName !=
null)
open(fileName);

}

Je ne comprends même pas pourquoi ce code marche pas !

Merci de votre aide
Tahiti_bob
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 juil. 2005 à 15:17
J'avais pas vu qu'il y'avait des réponses ici. Et ca c'est pas bien !?

[ STAThread ]
private static void Main( string[ ] args )
{
foreach ( string arg in args )
{
MessageBox.Show( arg );
}
}
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 juil. 2005 à 15:47
Y'a aussi GetCommandLineArgs( ) qui est plus pratique que CommandLine.
0
Rejoignez-nous