Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1651 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  base de registre, modifier clic droit sur les fenetres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

base de registre, modifier clic droit sur les fenetres

n°1131794
neg'gwada
rafix 971
Posté le 27-06-2005 à 03:27:31  profilanswer
 

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 ---
mood
Publicité
Posté le 27-06-2005 à 03:27:31  profilanswer
 

n°1132460
neg'gwada
rafix 971
Posté le 27-06-2005 à 15:42:16  profilanswer
 

personne?


---------------
--- WinSplit Revolution ---
n°1133404
neg'gwada
rafix 971
Posté le 28-06-2005 à 11:34:51  profilanswer
 

up :'(


---------------
--- WinSplit Revolution ---
n°1133918
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-06-2005 à 17:07:19  profilanswer
 

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.
n°1133926
chrisbk
-
Posté le 28-06-2005 à 17:10:03  profilanswer
 

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

n°1133936
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-06-2005 à 17:14:28  profilanswer
 

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.
n°1133937
chrisbk
-
Posté le 28-06-2005 à 17:14:50  profilanswer
 

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

n°1133948
neg'gwada
rafix 971
Posté le 28-06-2005 à 17:17:24  profilanswer
 

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 ---
n°1133949
Lam's
Profil: bas.
Posté le 28-06-2005 à 17:17:32  profilanswer
 

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

n°1133954
neg'gwada
rafix 971
Posté le 28-06-2005 à 17:18:32  profilanswer
 

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 ---
mood
Publicité
Posté le 28-06-2005 à 17:18:32  profilanswer
 

n°1133957
chrisbk
-
Posté le 28-06-2005 à 17:19:49  profilanswer
 

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

n°1133962
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-06-2005 à 17:22:23  profilanswer
 

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.
n°1134027
neg'gwada
rafix 971
Posté le 28-06-2005 à 18:09:08  profilanswer
 

ok je ferai signe si je trouve, merci encore


---------------
--- WinSplit Revolution ---
n°1134067
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-06-2005 à 19:00:57  profilanswer
 

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)
n°1134075
chrisbk
-
Posté le 28-06-2005 à 19:07:04  profilanswer
 

mais quel jeanjean celui la

n°1134081
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-06-2005 à 19:24:08  profilanswer
 

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.
n°1134088
chrisbk
-
Posté le 28-06-2005 à 19:32:27  profilanswer
 

on va le bipper ouais[:kiki]

n°1134093
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-06-2005 à 19:41:15  profilanswer
 

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

n°1134094
chrisbk
-
Posté le 28-06-2005 à 19:42:35  profilanswer
 

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

n°1134342
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-06-2005 à 09:29:47  profilanswer
 

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)
n°1134458
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 29-06-2005 à 10:38:42  profilanswer
 

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.
n°1134463
neg'gwada
rafix 971
Posté le 29-06-2005 à 10:42:55  profilanswer
 

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 ---
n°1135029
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-06-2005 à 17:44:40  profilanswer
 

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)
n°1135870
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-06-2005 à 14:01:49  profilanswer
 

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

n°1135890
chrisbk
-
Posté le 30-06-2005 à 14:10:25  profilanswer
 

ca sent le vaporware cette histoire

n°1135909
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-06-2005 à 14:20:54  profilanswer
 

tu verras bien :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°1135923
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-06-2005 à 14:27:40  profilanswer
 

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)
n°1135935
chrisbk
-
Posté le 30-06-2005 à 14:32:21  profilanswer
 

[:pingouino]

n°1135937
neg'gwada
rafix 971
Posté le 30-06-2005 à 14:33:24  profilanswer
 

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 ---
n°1135945
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-06-2005 à 14:37:10  profilanswer
 

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)
n°1135950
neg'gwada
rafix 971
Posté le 30-06-2005 à 14:39:02  profilanswer
 

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 ---
n°1135958
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-06-2005 à 14:43:35  profilanswer
 

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)
n°1135964
chrisbk
-
Posté le 30-06-2005 à 14:48:22  profilanswer
 

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

n°1136643
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-06-2005 à 23:36:53  profilanswer
 

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

n°1136689
neg'gwada
rafix 971
Posté le 01-07-2005 à 01:34:20  profilanswer
 

merchi  [:_astrid]


---------------
--- WinSplit Revolution ---
n°1137135
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-07-2005 à 13:19:16  profilanswer
 

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


---------------
J'ai un string dans l'array (Paris Hilton)
n°1137297
neg'gwada
rafix 971
Posté le 01-07-2005 à 15:05:30  profilanswer
 

[: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 ---
n°1137613
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-07-2005 à 18:08:38  profilanswer
 

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)
n°1137640
Mackila
Posté le 01-07-2005 à 18:57:55  profilanswer
 

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...

n°1137731
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-07-2005 à 21:26:56  profilanswer
 

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


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  base de registre, modifier clic droit sur les fenetres

 

Sujets relatifs
Transfer de base ? connection a une base de donnée Acess Par VBS
REQUETE SQL VERS 2 BASE DE MON SERV et ERREUR - PERDU JE SUISsauvegarde base de données mysql
Comment "ranger" une base SQL ?Liste déroulant de la base mysql
nommer les onglets d'après une base de donnée ??Qui à une idée pour m'aider pour ma Base de donnée
HTML : comment modifier les marges d'impressionUne base Access pour deux domaines ?
Plus de sujets relatifs à : base de registre, modifier clic droit sur les fenetres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR