2010-09-24 27 views
7

Possible en double:
Filetype association with application (C#)C# Windows Ouvrir avec> 'comportement de menu contextuel

J'écris une application C# Windows pour visualiser et modifier les fichiers '.build'(Nant scripts). J'aimerais que l'utilisateur puisse faire un clic droit sur un fichier .build dans Windows Explorer et sélectionner l'option 'Ouvrir avec>' pour permettre la modification du fichier dans mon application.

Qu'est-ce que mon programme doit prendre en charge afin de travailler avec ce mécanisme? Qu'est-ce que mon programme doit faire pour Windows pour activer la prise en charge du menu contextuel?

Je me demandais si quelqu'un pouvait me diriger vers un bon article/tutoriel sur ce sujet.

+0

Voir http://stackoverflow.com/questions/222561/filetype-association-with-application-c –

Répondre

4

La commande Ouvrir avec passe juste le chemin du fichier comme premier argument à l'application tout ce que vous devez faire est

public static void Main(string[] args) 
{ 
    if(args[0] != null) 
    { 
     //args[0] contans a path to the file do whatever you need to do to display it 
    } 
    else 
    { 
     //Start normally 
    } 
} 

Pour mettre automatiquement votre programme en plein air avec la liste, vous devez ajouter quelques clés reg dans HKEY_CLASSES_ROOT\YOUR_EXT\. Here is a SO answer dire comment le faire

Ou vous pourriez simplement l'ajouter à la main à l'air libre avec la liste de la manière normale.

2

Jetez un oeil à cet article: Shell Extensions - Context Menu. Il a du code pour un "wrapper" simple à certains hooks COM au menu contextuel du shell Windows. Placez-le dans le GAC et lorsque vous faites un clic droit, votre menu sera inclus comme un sous-menu du menu contextuel du clic-droit.

Si vous utilisez strictement "Open With ..." pour que votre application apparaisse SEULEMENT pour les fichiers qu'elle peut ouvrir, c'est un peu plus facile. Ceux-ci sont gérées par Windows à l'aide des clés de Registre à deux endroits dans le registre:

  1. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .FileExtension \ OpenWithList (installation pour l'utilisateur actuel)
  2. HKEY_CLASSES_ROOT \ .FileExtension \ OpenWithList (installation pour tous les utilisateurs)

Jetez un oeil à certains existants en utilisant regedit, puis utilisez la classe Registry pour créer une nouvelle clé pour l'extension que vous voulez.