Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Atelier code
6 avril 2012

Drag and drop sur un icone d'application winform

Bonjour,

Ce n'est pas l'article d'introduction que j'avais prévu pour commencer ce blog (je n'ai pas fini de l'écrire), mais j'ai trouvé ce sujet suffisament intéressant pour vous en parler sans attendre.

Je voulais créer une petite application du genre suivant:

  • on a l'icône d'une application sur le bureau,
  • On drag/drop un fichier dessus
  • l'appli se lance et fait une action.

Ca rappellera à tous le monde le comportement de la corbeille sous windows. La seule spécificité ici est que l'action implique l'affiche d'une petite winform (pour ajouter un choix).

En utilisant mon ami google, je ne trouvait que des explications concernant des applications console et qui donnent généralement le code suivant:

class Program
{
    static void Main(string[] args)   
    {
        //args[0] contient le nom de l'exécutable avec son chemin   
        //args[1] contient le nom du fichier droppé   
    }
}

Intéressant me direz vous mais voila dans un winform vous avez plutôt:

    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

Assez ennuyeux pour appeler les arg. Heureusement à force de requêtes j'ai trouvé la solution ici.

Ce qui va donner le code suivant:

string[] args = Environment.GetCommandLineArgs();
 
foreach (string arg in args)
{
//balaie l'ensemble des arguemnts
}

 Ce que j'ai traduit dans mon cas de la façon suivante:

if (args.Count() >= 2)
   ChargeLeFichier(args[1]);

 Une solution toute simple mais toujours difficile à trouver.

A bientôt (avec une introduction j'espère :-p )

Publicité
Publicité
Commentaires
Atelier code
  • Développeur dotnet dans ma vie quotidienne je suis un touche à tout : iPhone, Raspberry, robotique, développement de jeux vidéos, design. J’ai décidé de partager mes aventures dans le code avec vous et j'espère que vous y prendrez autant plaisir que moi.
  • Accueil du blog
  • Créer un blog avec CanalBlog
Publicité
Archives
Publicité