Ouvrir avec

Résolu
Signaler
Messages postés
86
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2007
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
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

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
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.
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
7
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 ] !!
Messages postés
86
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2007
1
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
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
7
Salut tahiti_bob,

Je pense qu'il se trouve dans la ligne de commande. Pour la récupérer :
string commandLine = Environment
.CommandLine;
Messages postés
86
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2007
1
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
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
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 );
}
}
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Y'a aussi GetCommandLineArgs( ) qui est plus pratique que CommandLine.