Extension du shell: menu contextuel en c (win32 api)

Soyez le premier à donner votre avis sur cette source.

Vue 6 479 fois - Téléchargée 467 fois

Description

Suite à mon pécédent code source:
http://www.cppfrance.com/codes/EXTENSION-SHELL-MENU-CONTEXTUEL-WIN32-API_48345.aspx
et à la demande de certains membres, voici le code source entièrement en C d'une extension du Shell pour le menu contextuel du bureau ou de l'arrière-plan d'une fenêtre de l'explorateur. Il s'agit donc d'une Dll Objet COM comme recommandé par Microsoft. Pour revoir la définition d'une extension du Shell, se reporter à la présentation du code source du lien mentionné plus haut.
Pour tester cette extension, renommer le fichier RacppMenu.dl_ en RacppMenu.dll et le coller dans le dossier System32. Ouvrir ensuite l'Invite de commandes et taper:
regsvr32 racppmenu.dll
Sous Vista il faut ouvrir l'Invite de commandes en tant qu'administrateur.
Pour déenregistrer l'extension, taper regsvr32 -u racppmenu.dll
Cette extension ajoute deux éléments au menu contextuel. "Afficher le chemin" pour voir le chemin complet du dossier courant et "Emettre un bip" pour entendre un petit bip sonore. Ces deux éléments ne sont ajoutés que si on fait un clic droit sur le bureau ou sur l'arrière-plan d'une fenêtre de l'explorateur.
C'est un projet DLL réalisé avec Visual C 2005. Son adaptation pour d'autres outils ne devrait pas poser de problème.
A noter que pour comprendre ce code source il faut avoir les notions de base sur les interfaces COM.
Les commentaires, remarques ou questions sont les bienvenus.

Source / Exemple :


Voir le zip.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

draluorg
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Erf non, la version c++ ne marche pas non plus sur le bureau ni sur un arriere plan, il fonctionne juste sur les fichiers!
draluorg
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

re moi,

Pour info, j'ai testé la version c++ elle fonctionne correctement sous ce meme Vista
Sinon pour en revenir à la version C, dans xp dans la fonction CreateInstanceIClassFactory
le riid reçu est IID_IShellExtInit mais sous Vista le riid reçu est IID_IContextMenu

C'est tout ce que j'ai trouvé pour le moment, je continue à chercher et je te tiens au courant.

++
draluorg
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Petite précision, sur xp je n'ai pas de prob ça tourne nikel :)
draluorg
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut à tous,


J'ai enfin dl le code hier car je dois faire une petite extension mais eh ca ne fonctionne pas chez moi :(

Quelqu'un a-t-il testé sur un Vista SP1 ?

J'ai bien enregistré la dll en tant qu'admin mais rien ne s'affiche dans le menu :s

++
julienbj
Messages postés
458
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
7
J'ai oublié de noter pour ta source, voila qui sera fait (10).
Encore merci pour cette mine d'informations.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.