IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Menus contextuels dans l'Explorateur de fichiers & associer un type de fichier avec un programme


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Menus contextuels dans l'Explorateur de fichiers & associer un type de fichier avec un programme
    Bonjour,

    J'ai écris un programme utilisant la bibliothèque de compression DotNetZip. A présent je désire étendre ses fonctionnalités et ajouter la possibilité de l'utiliser via le menu contextuel de Windows (Explorateur de fichiers - Shell).

    J'ai bien trouvé quelques trucs sur le Net mais ils ne sont pas vraiment explicites ou ne fonctionnent pas.
    Je recherche des exemples ou du code C# (tout fait - rêvons un peu... ) qui me permettrait d'une part, de rajouter des commandes au menu contextuel de l'Explorateur de fichiers pour mon programme et d'autre part créer pour celui-ci un type de fichier spécifique.

    Concernant le menu contextuel, les items disponibles (selon contexte - fichiers ou dossiers) seraient par exemple :
    - pour ajouter un ou plusieurs fichiers de n'importe quel type dans un fichier archive de ma fabrication,
    - pour ajouter le contenu d'un dossier à un fichier archive de ma fabrication,
    - pour extraire les fichiers d'une archive sélectionnée,

    etc...

    Un peu le même type de menus que Winzip ou Winrar proposent dans lle menu contextuel de l'Explorateur. L'idéal serait de faire référence à une .Dll [ContextMenuHandler] qui traiterait toutes les options que je désire intégrer, mais mes connaissances ne vont pas hélas jusqu'à là.

    Quelqu'un pourrait-il me renseigner, m'expliquer ou me fournir quelques exemples fonctionnels (que je complèterai éventuellement selon mes besoins) afin de générer de tels menus ?

    Merci d'avance,

    Cordialement

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    en théorie se sont les setup qui font ca, donc pas en c# (ca peut se faire au premier démarrage quand même)
    de plus c'est lié à windows pas à ton application
    il faut ajouter des clés dans la base de registre à priori, qui lanceront ton programme avec des commandes genre l'exe.exe -a - pathfichier
    ton programme devra récupérer les arguments de la ligne de commande

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    en théorie se sont les setup qui font ca, donc pas en c# (ca peut se faire au premier démarrage quand même)
    de plus c'est lié à windows pas à ton application
    il faut ajouter des clés dans la base de registre à priori, qui lanceront ton programme avec des commandes genre l'exe.exe -a - pathfichier
    ton programme devra récupérer les arguments de la ligne de commande
    Certes, pour l'association d'un type de fichier, pourquoi pas le faire via le prog d'installation. S'agissant des menus contextuels oui je sais qu'il faut ajouter des commandes et que c'est le programme qui doit récupérer les arguments et agir en conséquence mais voilà, j'ai essayé un truc de ce style pour voir (c'est un exemple), ça créé bien un menu contextuel (avec cascade) en omettant l'éventuel argument et le '%1' utiliser pour spécifier le chemin du fichier, cela ne fonctionne pas... Pire le programme n'est même pas exécuté !? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    [HKEY_CLASSES_ROOT\*\Shell\MonApp]
    "MUIVerb"="MonAPP"
    "SubCommands"="AddZip"
    "Icon"="C:\\Program Files (x86)\\MonApp\\1391092885_27832.ico"
    "Position"="middle"
     
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\AddZip]
    @="Ajouter à un Zip..."
     
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\AddZip\command]
    @="C:\\Program Files (x86)\\MonApp\\monApp.exe -a %1"

Discussions similaires

  1. Menus contextuels dans Excel 2007
    Par signorepel dans le forum Windows XP
    Réponses: 1
    Dernier message: 28/10/2013, 20h37
  2. Personnalisation des Menus Contextuels dans OFFICE 2010
    Par CristofMartins dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 23/10/2012, 14h26
  3. Création de menus contextuels dans une vue
    Par nouhaben dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 11/06/2008, 09h15
  4. Association de types de fichiers
    Par Janitrix dans le forum Windows
    Réponses: 2
    Dernier message: 08/04/2006, 22h06
  5. [VB6] [MDI] Menus contextuels dans les filles
    Par Rosec dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/09/2002, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo