Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONTEXTMENU - AJOUT D' UN ITEM DS LE POPMENU DE WINDOWS EXPLORER!


Information sur la source



Description

Cliquez pour voir la capture en taille normale
Cela permet de créer un item dans le popmenu de Windows Explorer pour faire un quelconque traitement aux fichiers seleccionnés comme le fait WinRar/WinZip.

À noter que le code est aussi executer lorsque l' on fait "Couper/Copier/eliminer etc ..." et non pas seulement lorsque l' on fait un click droit avec la souris.

Lorsque notre item est cliqué, alors je montre une Form en showModal (optionel!!!) avec un memo montrant les fichiers seleccionnés.

Il faut aussi faire le Registry Server qui est fourni dans le zip sous le projet _server.dpr (l' option contraire aussi).

Remarquer encore que, après aavoir fait le registry Server et après avoir testé la dll, celle-ci sera utilisée jusqu' au prochain démarrage de Windows (impossible de recompiler donc).
 

Conclusion

Cette source fut construite sur la démo de Borland Delphi7 (\borland\delphi7\demos\activex\shellext\contmenu.dpr).

Je voudrais remercier Jinh68 qui m' a fournis le code pour pouvoir traiter tout type de fichiers/repertoires.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de MAURICIO le 14/07/2005 17:40:36

Pour pouvoir tester cette source il faut:
1-compiler le projet _Server.dpr -> _server.exe
2-compiler le projet MyContextMenu.dpr.dpr -> MyContextMenu.dll
3-executer _server.exe, cliquer sur le bouton "Register Server"
4-Sous Windows Explorer, seleccionner 1 ou plusieurs fichiers puis faites un click droit.
Seleccionner l' option "Delphi test ..." du menu.

Et voilà !!!

J' ai qu' en même une question pour les plus pros:

dans ContextM.pas on déclare une const ainsi:
const
  Class_ContextMenu: TGUID = '{C763DB5D-B6A8-4A21-9B7E-41EF5CBABD56}';

Je voudrais savoir si cette valeur doit être unique, si on peut la changer nous même manuellement.

Encore merci à Jinh68 pour sa précieuse aide, c' est dommage qu' il ne poste pas de sources parce qu' il est vraiment bon le bougre !!!

signaler à un administrateur
Commentaire de roud59 le 14/07/2005 20:55:56

Bon source à mettre sous le coude et qui peut toujours être utile.
Pour enregistrer ta dll, il est aussi possible de taper en ligne de commande "regsvr32.dll MyContextMenu.dll" et pour l'annuler "regsvr32.dll MyContextMenu.dll /unreg" au lieu d'utiliser _Server.exe, et plus besoin de rebooter.

Je l'ai essayé (XP) et ça plante complètement l'explorateur, alors que l'exemple de delphi fonctionne...

signaler à un administrateur
Commentaire de roud59 le 14/07/2005 22:25:10

J'ai trouvé et c'était facile. Pour que ça fonctionne, il suffit de retirer la ligne "FList.SaveToFile('c:\dat\delme.txt');" ou de l'adapter au besoin... un oubli lors du nettoyage du code sûrement.
Utiliser regsvr est très pratique pour le développement, il suffit de creer sur le bureau les .bat correspondants.

Encore bravo Mauricio

signaler à un administrateur
Commentaire de CptPingu le 14/07/2005 23:08:19

Tres bonne source. On en trouvera facilement une utilité.

signaler à un administrateur
Commentaire de MAURICIO le 18/07/2005 10:26:41

Merci  roud59 pour ces précisions afin d' utiliser regsvr32.dll  ...

signaler à un administrateur
Commentaire de costello le 22/07/2005 23:57:46

Question: est-il possible de choisir une icone pour l'item du menu contextuel, comme Winrar ou Winzip?
merci d'avanz

signaler à un administrateur
Commentaire de costello le 23/07/2005 00:00:53

excusez-moi du double-post, je n'avais pas remarqué, mais il y a une petite erreur dans le message de roud59: ce n'est pas "regsvr32.dll" qu'il faut exécuter mais "regsvr32" tout court (c'est un exécutable, naturellement)

signaler à un administrateur
Commentaire de MAURICIO le 25/07/2005 10:14:19

Pour l' icone, je pense que c' est possible.
En ce qui concerne regsvr32, il faut utiliser le paramètre /u pour le unregister.
A+

signaler à un administrateur
Commentaire de c3rb3r3 le 27/07/2005 02:30:14

Bonne source.
Dommage que ça va profiter à ceux qui ont des intentions malveillantes, on retrouve ça chez les codeurs de malware entre autre.

Sinon au niveau de la compréhension, c'est simple, c'est propre, merci bien.

Voilou.

signaler à un administrateur
Commentaire de c3rb3r3 le 27/07/2005 02:59:29

HuMm, je ne sais pas si mal compris mais dans ma petite tête le regsvr32 /u ne décharge pas la librairie du processus explorer, par contre vous pouvez la décharger sans trop de pb.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/freelibrary.asp

HuMMm, c'est normal que ça ne décharge pas la lib du process explorer ?

Un p'tit kill sur explorer et c'est good ou bien en utilisant FreeLibrary de Kernel32 pour faire proprement mais bon ... y'a que moi ou bien ...

Ton code est propre (je me répète mais c'est appréciable).

signaler à un administrateur
Commentaire de MAURICIO le 27/07/2005 10:12:47

Merci c3rb3r3,
le parametre /u me fut donné par l' aide de Windows et ça marche plutot bien, même si quelques fois on a du mal à recompiler parce que la dll est tjrs en utilisation.
Fermant la fenêtre de l' explorateur de Windows résoud souvent le problème pour éviter le redémarrage du PC.
A+

signaler à un administrateur
Commentaire de Forman le 14/02/2006 10:08:41

>Dommage que ça va profiter à ceux qui ont des intentions malveillantes, on retrouve ça chez les >codeurs de malware entre autre.

Faut-il en déduire que windows est une boîte à malware?
lol

signaler à un administrateur
Commentaire de MAURICIO le 14/02/2006 14:06:09

Salut Forman,
il faut juste en deduire que le monde est un equilibre entre le bien et le mal ... Malheureusement l' un ne va pas sans l' autre. Moi ce qui m' interessait c' est de montrer comment font les utilitaires comme winzip etc ....A+

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Raccourci dans le menu contextuel [ par MyC ] Bonjour, je cherche le moyen de pouvoir effectuer divers actions sur un fichier ou pouvoir le lancer dans une application, en cliquant sur des élément ajouter 1 item au menu contextuel windows [ par costello ] Bonjour!!bon, voilà le titre un peu ring',en fait je SAIS ajouter un item à un menu contextuel windows.En l'occurence, je voulais ajouter l'item 'Lire Menu contextuel [ par bigjohn02tw ] Salut à tous,Un petit pbs: comment faire un menu contextuel avec delphi Merci pour les idées.John Popup Menu + Tray + Pas de click [ par mestressat ] Bonjour à tous.J'ai créé une Icon Tray qui affiche un menu contextuel (Popup Menu) lors du click droit de la souris (Grace aux sources trouvées sur le Menu contextuel TWebbrowser [ par ActiveX ] Comment faire pour déactiver ou retirer le menu contextuel du Twebbrowser.merci. [Experts] Shell, explorer [ par Kruger ] Salut tous le monde, je souhaite faire une appli visioneuse d'image en passant par le menu contextuel de explorer (un peu à la winzip) , lefonctionnem popup menu dynamique [ par Krome ] Bonjour, j ai un soucis pour creer un menu contextuel..Voici mon code:procedure TstringGrid.EventOnMousedown(Sender: TObject; Button: TMouseButton; S TWebbrowser - API - context menu [ par Armkreuz_Spiderz ] Salut a tous, hey oui encore moi sur ce forum a poser des questions sur le TWebbrowser, mais la, ce probleme la me bug vraiment!...J'explike, j'ai ins desactiver menu contextuel [ par bmwalid ] cmt desactiver menu contextuel dans un TWebBrowser ,? Menu contextuel et TWeBrowser [ par vmsn ] Bonjour,je suis un peu ennuyé, voilà mon problème, je suis entrain de créer une application de type "navigateur bridé". J'utilise pour cela un composa


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,733 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.