base de registre, modifier clic droit sur les fenetres

base de registre, modifier clic droit sur les fenetres - Divers - Programmation

Marsh Posté le 27-06-2005 à 03:27:31    

Salut  :hello:  je cherche quelle clé registre modifier pour pouvoir ajouter une fonctionalité au clic droit sur le haut des fenetres?  
http://reptils.free.fr/forumhardware/images/registre_prog.JPG
Par exemple je voudrais rajouter une ligne MonProgramme qui (au clic) va executer un programme, mais j'aimerai aussi récupéré le handle de la fenetre en quetsion mais ca c'est moins dure.
Merci d'avance


Message édité par neg'gwada le 28-06-2005 à 16:49:08

---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 27-06-2005 à 03:27:31   

Reply

Marsh Posté le 27-06-2005 à 15:42:16    

personne?


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 28-06-2005 à 11:34:51    

up :'(


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 28-06-2005 à 17:07:19    

Yop, j'avais pas vu ton topic [:joce]
Bon alors à mon avis, oui, c'est faisable puisque plein de softs le font (au hasard, prends un fichier d'aide de type .chm et ouvre-le : tu verras 2 items supplémentaires). Comment, j'en sais trop rien mais ça doit pouvoir se trouver assez facilement sur des sites comme thecodeproject.com ou codeguru.com.
Mate aussi dans Google avec des mots-clés comme "context menu" ou "title bar".


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 28-06-2005 à 17:10:03    

jsais pas non plus mais je pense pas que ca soit dans le registre

Reply

Marsh Posté le 28-06-2005 à 17:14:28    

Ouais non, pas de registre mais plutôt du côté code de l'appli en faisant appel à l'API Win32 (p'têt en C# avec WinForms ?). Ca doit pouvoir se trouver :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 28-06-2005 à 17:14:50    

ouais mais j'ia l'impression qu'il veut parasiter un menu d'une appli pas a lui :o

Reply

Marsh Posté le 28-06-2005 à 17:17:24    

Taiche a écrit :

Yop, j'avais pas vu ton topic [:joce]
Bon alors à mon avis, oui, c'est faisable puisque plein de softs le font (au hasard, prends un fichier d'aide de type .chm et ouvre-le : tu verras 2 items supplémentaires). Comment, j'en sais trop rien mais ça doit pouvoir se trouver assez facilement sur des sites comme thecodeproject.com ou codeguru.com.
Mate aussi dans Google avec des mots-clés comme "context menu" ou "title bar".

j'ai googlé comme un dingue et j'ai rien trouvé, à part changer les titre dans la barre de tire d'internet explorer et windows media player :/. Sinon pour le fichier d'aide je vais regarder des exemples, mais dans ce cas la le code sera fait pour la fenetre en question, or moi je voulais le faire pour toute les fenetres ouvertes... c'et pourquoi je volais passer par la base de registre. je vais regarder aussi sur codeguru.com je ne connaissais pas  :whistle:  


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 28-06-2005 à 17:17:32    

chrisbk a écrit :

ouais mais j'ia l'impression qu'il veut parasiter un menu d'une appli pas a lui :o


Yup, et je doute que ça soit faisable de marnière raisonnablement facile.  
 
Sinon, ça a l'air plutôt simple à faire de tripatouiller le menu système de sa propre appli (HTSYSMENU de son petit nom).
http://blogs.msdn.com/oldnewthing/ [...] 55461.aspx

Reply

Marsh Posté le 28-06-2005 à 17:18:32    

chrisbk a écrit :

ouais mais j'ia l'impression qu'il veut parasiter un menu d'une appli pas a lui :o

exacte je veux le faire pour toute les fenetres


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 28-06-2005 à 17:18:32   

Reply

Marsh Posté le 28-06-2005 à 17:19:49    

heuh bin la je sais pas du tout. Ptet regarder du coté des hook si y'a qqchose a faire...

Reply

Marsh Posté le 28-06-2005 à 17:22:23    

neg'gwada a écrit :

exacte je veux le faire pour toute les fenetres


Ah ouais non là spa gagné [:joce] Bin bon courage, stu trouves un truc pour le faire hésite pas à poster la soluce :D


Message édité par Taiche le 28-06-2005 à 17:22:29

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 28-06-2005 à 18:09:08    

ok je ferai signe si je trouve, merci encore


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 28-06-2005 à 19:00:57    

sans déconner.. rien qu'une bande d'amateurs ici... retournez donc faire du Java ou du C, et laisser les pros répondre :pfff:
donc, pour répondre à neg, il est parfaitement possible de modifier le menu de la fenêtre (aussi appelé System Menu). il faut pour cela passer par Win32.
 
il faut en fait récupérer le handle de ce menu via la fonction GetSystemMenu. cette fonction renvoie un HMENU, que l'on pourra utiliser par la suite pour ajouter ou enlever des items.
ensuite, c'est tout con : pour enlever des items, on utilise la fonction RemoveMenu(), et pour en rajouter on utilise AppendMenu(), InsertMenu(), etc... comme on le ferait pour n'importe quel menu.
 
ces fonctions sont décrites dans la MSDN. si t'as des soucis pour les utiliser, bippe moi, je dois avoir un ou deux sources qui trainent sur mon dur :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-06-2005 à 19:07:04    

mais quel jeanjean celui la

Reply

Marsh Posté le 28-06-2005 à 19:24:08    

Putain mais Harko, lis tout le topic avant de répondre à côté comme une tanche [:kiki]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 28-06-2005 à 19:32:27    

on va le bipper ouais[:kiki]

Reply

Marsh Posté le 28-06-2005 à 19:41:15    

ok, j'ai un peu répondu (presque) à coté, mais je reste persuadé qu'avec un hook global c'est faisable :o
laissez moi la soirée pour lui coder un truc dans ce sens :o

Reply

Marsh Posté le 28-06-2005 à 19:42:35    

vala, occupe toi comme ca et revient nous voir avec du solide [:kiki]

Reply

Marsh Posté le 29-06-2005 à 09:29:47    

et c'est fait [:volta]
je poste le code ce soir :o
à moins que l'ami neg ne veuille le faire lui même ? je lui donne quelques pistes :
- dans un hook global, il faut intercepter le message WM_INITMENU
- attention, car en interceptant ce message, on intercepte TOUS les menus. faut bien faire gaffe à n'intercepter que le menu système (voir pour ça lParam)
- ensuite, intercepter la commande de menu (WM_SYSCOMMAND)
et puis voilà :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-06-2005 à 10:38:42    

Eh bin voilà, tu vois que tu peux répondre pile à la question, quand tu veux :D
Colle le code à l'occasion, ça pourra p'têt servir plus tard :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 29-06-2005 à 10:42:55    

Harkonnen a écrit :

et c'est fait [:volta]
je poste le code ce soir :o
à moins que l'ami neg ne veuille le faire lui même ? je lui donne quelques pistes :
- dans un hook global, il faut intercepter le message WM_INITMENU
- attention, car en interceptant ce message, on intercepte TOUS les menus. faut bien faire gaffe à n'intercepter que le menu système (voir pour ça lParam)
- ensuite, intercepter la commande de menu (WM_SYSCOMMAND)
et puis voilà :o

vi vi colle le code  [:_astrid], meme si j'ai pas encore pigé ce que tu as fait  [:cupra]  


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 29-06-2005 à 17:44:40    

ben je posterais le code, mais si tu piges rien, ça sert strictement à rien hein [:kiki]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 30-06-2005 à 14:01:49    

désolé, mais j'ai pas pu poster hier soir, because maj de ma livebox qui devait durer 10 mn, mais qui a finalement duré 2h [:kiki]
je poste ce soir

Reply

Marsh Posté le 30-06-2005 à 14:10:25    

ca sent le vaporware cette histoire

Reply

Marsh Posté le 30-06-2005 à 14:20:54    

tu verras bien :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 30-06-2005 à 14:27:40    

n'empeche que c'est du code de kalitay, mélange C/C++, MFC et tout [:necris]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 30-06-2005 à 14:32:21    

[:pingouino]

Reply

Marsh Posté le 30-06-2005 à 14:33:24    

Harkonnen a écrit :

n'empeche que c'est du code de kalitay, mélange C/C++, MFC et tout [:necris]

ca existe encore :whistle:  
nan mais t'inquiete, meme si c'est difficile je vais apprendre, justement je suis en vacance donc j'en profite pour appronfondir mes connaissances (légères) en programmation.  ;)


Message édité par neg'gwada le 30-06-2005 à 14:33:52

---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 30-06-2005 à 14:37:10    

neg'gwada a écrit :

ca existe encore :whistle:


et encore, estime toi heureux, j'étais parti pour le faire en assembleur Win32 avec masm32, mais tu l'aurais eu la semaine prochaine [:pingouino]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 30-06-2005 à 14:39:02    

Harkonnen a écrit :

et encore, estime toi heureux, j'étais parti pour le faire en assembleur Win32 avec masm32, mais tu l'aurais eu la semaine prochaine [:pingouino]


ca ira merci, finalement le MFC c'est pas si mal  :sweat:


Message édité par neg'gwada le 30-06-2005 à 14:39:13

---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 30-06-2005 à 14:43:35    

roo, spas si imbuvable en assembleur hein :o
tiens, je le ferais pendant mes congés, histoire que tu te rendes compte
(non, j'aurais pas de vie pendant mes congés et je vous emmerde [:pingouino])


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 30-06-2005 à 14:48:22    

c'est surtout qu'on se fout de la version asm [:pingouino]

Reply

Marsh Posté le 30-06-2005 à 23:36:53    

voila le travail !
le source : http://harko.free.fr/hfr/menusrc_VS2k3.zip (compilable avec VS2003)
l'executable et la librairie MFC : http://harko.free.fr/hfr/menu.zip
 
pour le source, la solution principale est dans le répertoire menu. le répertoire hookmenu contient la dll qui patche le menu système, et fait partie de la solution menu.
 
y'a qques bugs qui trainent (il faut cliquer 2 fois sur la fenêtre pour que le nouvel item de menu apparaisse, et quand on clique sur cet item, le message apparait 2 fois), mais facilement corrigibles. ce truc est codé à l'arrache comme un porc, il y a un meilleur endroit que le WM_INITMENUPOPUP pour initialiser le menu (en Win32, dans le DLL_PROCESS_ATTACH), mais j'ai jamais fait de dll en MFC, alors pardon hein [:joce]
 
éclatez vous les kids

Reply

Marsh Posté le 01-07-2005 à 01:34:20    

merchi  [:_astrid]


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 01-07-2005 à 13:19:16    

bon alors, c'est ce que tu voulais ? :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-07-2005 à 15:05:30    

[:d4buff] trop ienb  [:chapi-chapo] tu es un boss, en plus j'aurai appris ce qu'est le hook, je te commande deux putes croates pour te remercier [:el_marco].
 
 
Au fait question, si par exemple j'ai un programme qui tourne en fond genre dans mon tray, et j'aimerai intercepter un raccourci clavier qui ferai une  tache dans mon programme, ca passe par les hooks ou bien par autre chose genre évenements?


Message édité par neg'gwada le 01-07-2005 à 15:58:17

---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 01-07-2005 à 18:08:38    

neg >> si tu te sens de corriger le bug qui affiche 2 fois la messagebox, je te donne une piste : le wParam du hook contient un flag qui, s'il est sur PM_NOREMOVE, laisse le message sur la file des messages, même s'il a déjà été traité (et il sera donc traité une nouvelle fois)
 
je t'ai tout dit là :D


Message édité par Harkonnen le 01-07-2005 à 18:09:05

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-07-2005 à 18:57:55    

Et pour le bug de l'item qui n'apparait qu'au deuxieme coup ?
 
Nan j'dis ca, c'est parceque allways-on-top a le bug, alors si ya un moyen simple de se refaire le soft pour ne pas avoir le bug...

Reply

Marsh Posté le 01-07-2005 à 21:26:56    

c'est quoi always-on-top ? :)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed