Accueil > Forum > > > > affichage contenue de MessageBox
affichage contenue de MessageBox
dimanche 15 mars 2009 à 14:20:36 |
affichage contenue de MessageBox

bonapart002
|
Bonsoir : le code de dll suivant permet de détecter le le création ,réduction ou un agrandissement d'une fenêtre : ---------------------------- #include <windows.h> HINSTANCE thismod; HHOOK hhk; BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID Reserved) { if(dwReason == DLL_PROCESS_ATTACH) thismod = hDll; return 1; }
LRESULT CALLBACK CbtHookCallback(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode >= 0) { //quand une nouvelle fenetre est créé if(nCode == HCBT_CREATEWND) MessageBox(NULL, "Fenêtre Créée", "Information", MB_ICONINFORMATION);
//pour quand on faire une reduction ou un agrandissement if(nCode == HCBT_MINMAX) MessageBox(NULL, "Fenêtre Réduction / Agrandissement", "Information", MB_ICONINFORMATION); }
return CallNextHookEx(hhk, nCode, wParam, lParam); }
extern "C" __declspec(dllexport) int __stdcall Intercepte() { if(!hhk) hhk = SetWindowsHookEx(WH_CBT, CbtHookCallback, thismod, 0); return (int) hhk; }
extern "C" __declspec(dllexport) void __stdcall FinIntercepte() { if(hhk) { UnhookWindowsHookEx(hhk); hhk = 0; } }
----------------------------- si j'exécute le programme client qui utilise cette dll .il m'affiche en boucle infinie le MessageBox "fenetre créée" . si j'elimine cette partie (detection de creation de fenetre ): if(nCode == HCBT_CREATEWND) MessageBox(NULL, "Fenêtre Créée", "Information", MB_ICONINFORMATION);il ca marche bien . quel est l'erreur dans ce code ? et merci
|
|
dimanche 15 mars 2009 à 18:04:09 |
Re : affichage contenue de MessageBox

juju12
|
Et bien lorsque tu affiches ton message "Fenêtre créée", une nouvelle fenêtre est créée (celle de la MsgBox), donc émission d'un deuxième message HCBT_CREATEWND, et ainsi de suite...
|
|
dimanche 15 mars 2009 à 20:05:01 |
Re : affichage contenue de MessageBox

bonapart002
|
salut: ok merci . mais je doit connaitre le nom de l'application ou de la nouvelle fenêtre qui s'affichera .par exemple si la fenêtre qui apparaitre est la fenêtre de Word j' interdire son ouverture et afficher un MessageBox ("vous ne pouvez pas ouvrir cette fenetre ").
j'attends ta réponse et merci bcp pour ton aide .
|
|
dimanche 15 mars 2009 à 22:01:40 |
Re : affichage contenue de MessageBox

juju12
|
Réponse acceptée !
ben suffit de tester le nom de la fenêtre, par exemple : if(nCode==HCBT_CREATEWND) { CHAR szwName[12]; GetWindowText((HWND)wParam,szName,12); if(!StrCmp(szName,"Information")) { MessageBox(0,"Fermeture","Information",0); ... } }
ça devrait marcher.
|
|
dimanche 15 mars 2009 à 23:35:47 |
Re : affichage contenue de MessageBox
|
lundi 16 mars 2009 à 01:17:45 |
Re : affichage contenue de MessageBox

juju12
|
sauf que je me suis planté, avecStrCmp de shlwapi ça serait plutôt : if(StrCmp(szName,"Information"))...
|
|
lundi 16 mars 2009 à 01:31:22 |
Re : affichage contenue de MessageBox

bonapart002
|
mais désolé ce code ça marche avec le HCBT_MINMAX et HCBT_DESTROYWND et d'autre..mais ne ce marche pas avec HCBT_CREATEWND. je pense car avant la création de fenêtre on ne peut pas tester sur son nom (szName) le nom de fenêtre est vide avant sa création . mon problème est :je veut afficher un MessageBox seulement si j'ouvre un fenêtre qui ayant comme nom "MonFenetre" dans les autre cas rien ne s'affichera . je mit le code suivant:
if(nCode==HCBT_CREATEWND) { CHAR szName[12]; GetWindowText((HWND)wParam,szName,12); if(strcmp(szName,"MonFenetre")) { MessageBox(0,"ouvrir monfenetre ","Ouverture",0); } else {// rien à fire }
}
mais il m'affiche ce MessageBox dans tout les cas . ou est-elle le probleme? et merci juju pour ton aide .
|
|
lundi 16 mars 2009 à 13:01:15 |
Re : affichage contenue de MessageBox

juju12
|
au temps pour moi... par contre ceci devrait aller :
if(nCode==HCBT_CREATEWND) { LPCTSTR lpName=((CBT_CREATEWND)lParam)->lpcs->lpszName; if(StrCmp(lpName,"Ma fenêtre") {...} }
|
|
lundi 16 mars 2009 à 13:02:29 |
Re : affichage contenue de MessageBox

juju12
|
avec le nombre correct de () c'est mieux... if(StrCmp(lpName,"Ma fenêtre")) {...}
|
|
lundi 16 mars 2009 à 17:12:02 |
Re : affichage contenue de MessageBox

bonapart002
|
mais ça m'affiche 3 erreur :
-error C2227: la partie gauche de '->lpcs' doit pointer vers un type class/struct/union/générique -error C2227: la partie gauche de '->lpszName' doit pointer vers un type class/struct/union/générique -warning C4311: 'cast de type' : troncation de pointeur de 'HHOOK' à 'int'
j 'ai essayé de les corriger mais non, toujours les mêmes erreurs .
voici le code de la dll : --------------------------------------- #include <windows.h> #include <string.h> HINSTANCE thismod; HHOOK hhk; BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID Reserved) { if(dwReason == DLL_PROCESS_ATTACH) thismod = hDll; return 1; }
LRESULT CALLBACK CbtHookCallback(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode >= 0) { f(nCode==HCBT_CREATEWND) { LPCTSTR lpName=((CBT_CREATEWND)lParam)->lpcs->lpszName; if(strcmp(lpName,"Ma fenêtre")) {MessageBox(0,"ouvrir monfenetre ","Ouverture",0);} else {// rien a faire } }
return CallNextHookEx(hhk, nCode, wParam, lParam); }
extern "C" __declspec(dllexport) int __stdcall Intercepte() { if(!hhk) hhk = SetWindowsHookEx(WH_CBT, CbtHookCallback, thismod, 0);
return (int) hhk; }
extern "C" __declspec(dllexport) void __stdcall FinIntercepte() { if(hhk) { UnhookWindowsHookEx(hhk); hhk = 0; } }
----------------------------------
|
|
Cette discussion est classée dans : fenêtre, messagebox, ncode, hhk, if
Répondre à ce message
Sujets en rapport avec ce message
detection d'un messageBox et fermeture automatique [ par elroulianito ]
J'aimerai utiliser une fonction issue d'une dll. Le problème est qu'à l'execution de celle-ci une fenêtre de type messagebox apparait m'invitant à cli
fenêtre basculant en arrière-plan [ par by_rabbit_08 ]
Bien le bonjourj'ai une simple question:J'ai une boite de dialogue qui appelle un Thread et qui lui passe en paramètre son handle (de la boite de dial
ma dll à l'aide plz [ par snpier wolf ]
Bonjour, j'ais chercher un moyen de récupérer le message wm_close de la fenêtre active.Après avoir parlez avec BruNews, j'ai compris qu'il me
Hook souris et Windows 7 64 bits [ par thenaoh ]
Bonjour, Je cherche désespérément à faire fonctionner un hook souris basique réalisé en C++. Le hook doit fonctionner sous Windows 7 64 bits, où on p
probleme avec la fonction glreadpixels [ par sousoi ]
je trouve que on peut implimenter l'algo de z buffer avec opengl et recuperer les donnee avec la fonction de opengl "glreadpixels" mais je trouve un
interpreteur sql [ par cobutanisme154 ]
bonjours tout le monde, j'ai cherché sur ce site et sur google ,mais je n'arrive pas à trouver un interpréteur sql écrit en c.Quand je dis un interpré
Probleme : Sudoku en C [ par seth59222 ]
Bonsoir, voila je suis actuellement en première année d'info, donc assez novice et je viens de créer ce petit bout de programme en C qui consiste a ré
message erreur access violation [ par beautyordi ]
bonjour a tous Je suis débutant et je souhaite juste lancer une fenêtre vierge avec glut j'ai recopier le code de mon bouquin voila mon code: [code=cp
shutdown sans message d'erreur ? [ par barth62 ]
bonjour alors j'ai fait ce code [b][color=red]en batch[/color][/b] l'extension *.bat [code=autre]@echo off title easy shutdown color 0a :debut echo Ta
nombre de documents où un terme apparaît [ par mervat ]
le programme ci-dessous détermine le nombre de documents où le mot "terme" apparaît. il est exécutable et il donne comme résultat 2 car le mot "terme"
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|