Accueil > Code > Arguments à une application Windows…

Arguments à une application Windows…

Si le passage d’arguments est essentiel aux applications console, et donc très bien intégré à Visual Studio lors du développement de ce genre de soft, il est en revanche bien moins en avant dans le cadre d’un développement Windows Forms.

Pourtant, passer des arguments peut aussi se faire à ce genre de soft. Par exemple, j’ai travaillé dernièrement sur un petit outil de sauvegarde automatique, lancé au démarrage de Windows. Afin de ne pas ennuyer l’utilisateur avec une fenêtre visible, je souhaitais donc lancer ce programme dans une fenêtre minimisée, sous forme d’une icône systray.

Mais comment?

VS2005 ne « préconfigure » pas cette opération, et aucune documentation n’est disponible sur le sujet. Certainement parce que la solution est *très* simple.

Dans le fichier Program.cs généré automatiquement à la création d’une application Windows Forms se trouve la fonction Main(). Cette même fonction qui est générée lors de la création d’une application console. Et même si la compilation d’une application Forms est très différente d’une application console, elle gère tout de même les arguments de Main(), même s’ils ne sont pas présents par défaut.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
using System.Windows.Forms;
 
namespace MySoft {
    static class Program {
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        [STAThread]
        static void Main(string[] args) {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new FormMain(args));
        }
    }
}

Et voilà, on passe les arguments sous forme de tableau de string au constructeur de notre form et on peut jouer avec. La vie est belle.

Ouais, je sais, je suis un gros noob et c’est super basique, mais bon, c’est pas chouette de découvrir la vie comme ça au quotidien? Allez, salut.

Categories: Code Tags:
  1. Pas encore de commentaire
  1. Pas encore de trackbacks