none
Associer extension de fichier à une application C# .NET? Ouvrir le fichier correspondant par double click dans l'explorateur ?? RRS feed

  • Question

  • Bonjour,

    je souhaiterais développer une application permettant de venir créer des projets et pour chaque projet, venir saisir

    des données dans des tableaux.

    Dans cette application, je souhaiterais pouvoir sauvegarder les fichiers projets (dans lequel se trouvent toutes les données saisies dans les tableaux pour ce projet). Et je souhaiterais venir associer à ces fichiers projets une extension (.xxx).

    Je souhaiterais pouvoir associer ces fichiers projets avec extension .xxx à mon outil de sorte que lorsque l'utilisateur vienne double cliquer sur ce fichier projet dans l'explorateur windows, l'outil se lance automatiquement et vienne réouvrir le projet ainsi crée.

    Sauriez-vous comment réaliser cette association automatiquement ??

    Quand réaliser l'association ? à l'installation ? lors de chaque execution de mon application ?

    Comment gérer la réouverture des fichiers .xxx dans mon appli lorsque l'utilisateur double clique sur le fichier correspondant. (Une méthode est-elle appelée directement dans ce cas ? Est-il possible de gérer ca dans le form load ???)

    Qu'est-il possible de choisir comment type de fichier. (je souhaiterais venir stocker des données de config du projet, des données issues de différents tableaux de saisies etc...).

    merci d'avance !!

    dimanche 29 décembre 2013 09:43

Réponses

  • Bonjour,

    Il faut :

    • Ajouter une clé HKEY_CLASSES_ROOT\<.mon extension> et donnez lui comme valeur par défaut le nom de votre application MyApplication.
    • Ajouter une clé HKEY_CLASSES_ROOT\MyApplication\shell\open\command et donnez lui comme valeur par défaut l'emplacement de votre executable suivi de "%1" : "C:\...\MyApplication.exe" "%1" (Mettez bien les guillemets !)
    • Dans votre application, vous pouvez récupérer le nom du fichier à l'importe quel moment via le code suivant :
    string[] ligneCommande;
    
    ligneCommande = Environment.GetCommandLineArgs();
    if (ligneCommande.Length >= 2)
    {
      // Récupérer le nom du fichier
      string monFichierDTA = ligneCommande[1];
    }
    else
    {
      // Aucun fichier n'a été spécifié
    }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Thom_A mercredi 1 janvier 2014 11:09
    dimanche 29 décembre 2013 15:59
    Modérateur

Toutes les réponses

  • Bonjour,

    Il faut :

    • Ajouter une clé HKEY_CLASSES_ROOT\<.mon extension> et donnez lui comme valeur par défaut le nom de votre application MyApplication.
    • Ajouter une clé HKEY_CLASSES_ROOT\MyApplication\shell\open\command et donnez lui comme valeur par défaut l'emplacement de votre executable suivi de "%1" : "C:\...\MyApplication.exe" "%1" (Mettez bien les guillemets !)
    • Dans votre application, vous pouvez récupérer le nom du fichier à l'importe quel moment via le code suivant :
    string[] ligneCommande;
    
    ligneCommande = Environment.GetCommandLineArgs();
    if (ligneCommande.Length >= 2)
    {
      // Récupérer le nom du fichier
      string monFichierDTA = ligneCommande[1];
    }
    else
    {
      // Aucun fichier n'a été spécifié
    }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Thom_A mercredi 1 janvier 2014 11:09
    dimanche 29 décembre 2013 15:59
    Modérateur
  • Parfait Merci !
    dimanche 29 décembre 2013 16:27
  • Bonjour,

    Pouvez-vous marquer ma réponse comme "Marquer comme réponse" si cela correspond à votre besoin.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    mardi 31 décembre 2013 01:31
    Modérateur