Comment créer un menu contextuel avec les mêmes choix que l’Explorateur

Je m’excuse si cela a déjà été répondu. J’ai regardé et regardé, et je ne trouve rien de ce que je veux, ce qui me surprend beaucoup. S’il vous plaît n’hésitez pas à me donner un “Cela a déjà été demandé” avec un lien … 🙁

Je suis en train de créer un programme en C #. La fenêtre principale aura une liste de fichiers pertinents pour mon application. Je les ai actuellement dans une liste, bien que je puisse changer de type de widget si nécessaire. Ce que je souhaiterais, c’est de permettre à un utilisateur de cliquer avec le bouton droit de la souris sur un ou plusieurs noms de fichiers pour afficher le même menu contextuel que celui obtenu dans Explorer. Avec par exemple “Ouvrir”, “Modifier”, “Imprimer”, etc.

De toute évidence, je pourrais mettre des choses dans un menu contextuel manuellement, mais je voudrais qu’il ait les mêmes choix que dans l’Explorateur. Il y aura des documents Word et des fichiers texte et diverses autres cotes et fins. Je ne sais pas comment la liste des actions du menu contextuel standard de Windows est remplie, surtout si la liste change en fonction du type de fichier sélectionné et si plusieurs fichiers sont sélectionnés.

Je peux fournir un code si nécessaire, même si je n’ai encore rien d’intéressant.

Mes questions sont donc les suivantes: Comment puis-je obtenir la liste des actions à effectuer lorsque vous cliquez avec le bouton droit sur un fichier ou un groupe de fichiers dans l’Explorateur? Existe-t-il une API Windows que je peux appeler? Ou est-ce que je regroupe les choix que je lis dans le registre? Et si oui, qu’est-ce que je lis? Ou quoi?

En bonus, je voudrais pouvoir append quelques commandes au menu uniquement dans ma propre application . La plupart du temps, tout ce que je peux trouver, c’est comment écrire une extension dans le menu contextuel de telle sorte que je puisse append une action qui apparaît toujours lorsque vous cliquez sur un type de fichier spécifique. Ce n’est pas ce que je veux. C’est un bonus cependant, et je peux toujours append des boutons ou un menu déroulant ou quelque chose si cela ne fonctionnera pas ou si cela nécessite un codage héroïque.

J’ai trouvé cet article qui décrit le processus pour c ++ mais je pense que vous pourrez le faire évoluer. Utilisation du menu contextuel du shell

EDIT: Voici un autre lien vers un projet avec du code prêt à l’emploi (C #):

Menu contextuel du shell de l’explorateur