Paramètres d'exécution

Résolu
angrodmadje Messages postés 17 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 27 juillet 2009 - 27 juil. 2009 à 12:10
angrodmadje Messages postés 17 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 27 juillet 2009 - 27 juil. 2009 à 17:28
Bonjour à tous, j'ai fait quelques recherches et je n'ai pas trouvé de réponse à ma question, qui est :

comment tester la présence ou non d'argument lors de l'exécution d'une application...

je m'explique, j'ai développé un automate qui fait une série d'action, donc au départ il ne devait pas y avoir d'interface, mais on s'est rendu compte qu'elle pourrait être utile dans certains cas, du coup j'ai réalisé une interface, mais :
- j'aimerai que l'interface ne soit pas exécutée si c'est une exécution en mode automate (tâche planifiée)
- et lancer l'interface si c'est une exécution manuelle

ce que j'avais fait, c'était un test sur le contenu de args de la méthode Main, mais il me renvoie cette erreur : "L'index se retrouve en dehors des limites du tableau"
j'avais donc 2 raccourcis avec ou sans paramètre

Merci d'avance

2 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
27 juil. 2009 à 12:28
Salut

Attention que, si je me souviens bien, le tableau args[] ne contient pas l'emplacement de l'exe en premier argument en C# (donc le 1er paramètre se trouve à l'indice 0 (s'il y en a un))

"L'index se retrouve en dehors des limites du tableau" => C'est tout simplement que ton indice est supérieur (ou égal) à la taille du tableau. Teste donc la taille du tableau avant de tester la valeur.

Si, par exemple, ton paramètre pour lancer le mode fenêtré est -win, tu peux faire ainsi :

if (args.Length > 0 && args[0] == "-win")
{
    // Lancement de la fenêtre
}


Si tu peux avoir plusieurs paramètres et que -win n'est pas forcément en premier, tu peux faire ainsi :

if(args.Contains("-win"))
{
    // Lancement de la fenêtre
}


Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
3
angrodmadje Messages postés 17 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 27 juillet 2009
27 juil. 2009 à 17:28
merci pour cette réponse, rapide et et précise

j'ai testé les deux et ça fonctionne correctement, j'avais juste fait une erreur au niveau de mon argument...

merci encore

ps : je suis d'accord avec toi, le BAR n'est pas un langage de prog', c'est mon nom de famille
0
Rejoignez-nous