begin process at 2012 05 29 09:07:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

Hook WH_MOUSE_LL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Hook WH_MOUSE_LL

dimanche 8 avril 2007 à 14:24:15 | Hook WH_MOUSE_LL

vecchio56

Administrateur CodeS-SourceS
Bonjour,

J'utilise un hook bas niveau de type WH_MOUSE_LL, et j'ai un problème lorque je cherche a fermer ma fenêtre principale (la souris se bloque). Le petit programme qui suit met en évidence ce problème.
Une idée? Merci

#define _WIN32_WINNT 0x0501

#define _WIN32_IE 0x0501

#include<windows.h>

#include<tchar.h>

 

HINSTANCE hinst;

HWND hmain;

TCHAR szappname[] = _T("ACHANGER");

HHOOK hHook;

 

 

LRESULT CALLBACK AppWndProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)

{

  switch(mssg) {

    case WM_DESTROY:

      PostQuitMessage(0);

      return 0;

  }

  return DefWindowProc(hwnd, mssg, wParam, lParam);

}

 

DWORD __stdcall InitInstance()

{

  WNDCLASSEX     wndcls;

  memset(&wndcls, 0, sizeof(WNDCLASSEX));

  wndcls.cbSize = sizeof(WNDCLASSEX);

  wndcls.lpfnWndProc   = AppWndProc;

  wndcls.style         = CS_HREDRAW | CS_VREDRAW;

  wndcls.hInstance     = hinst;

  wndcls.lpszClassName = szappname;

  wndcls.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);

  wndcls.hCursor       = LoadCursor(0, IDC_ARROW);

  if(!RegisterClassEx(&wndcls)) return 0;

  hmain = CreateWindowEx(0, szappname, szappname, WS_OVERLAPPED | WS_VISIBLE | WS_SYSMENU,

    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

    0, 0, hinst, 0);

  return (hmain != 0);

}

 

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)

{

  return CallNextHookEx(hHook, nCode, wParam, lParam);

}

 

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE x, PSTR y, int z)

{

  MSG msg;

  hinst = hInstance;

  hHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, hInstance, NULL);

  if(!InitInstance()) return 0;

  ShowWindow(hmain, SW_NORMAL);

  while(GetMessage(&msg, NULL, 0, 0)) {

    TranslateMessage(&msg);

    DispatchMessage(&msg);

  }

  return 0;

}



_____________________________________
Un éditeur de ressources gratuit pour Windows

dimanche 8 avril 2007 à 14:35:46 | Re : Hook WH_MOUSE_LL

racpp

Administrateur CodeS-SourceS
Salut,
Je viens de tester ton code. Aucun problème. La fenêtre se ferme normalement.

dimanche 8 avril 2007 à 14:58:19 | Re : Hook WH_MOUSE_LL

vecchio56

Administrateur CodeS-SourceS
Je confirme le bloquage chez moi, c'est bizarre

_____________________________________
Un éditeur de ressources gratuit pour Windows

dimanche 8 avril 2007 à 17:30:23 | Re : Hook WH_MOUSE_LL

juju12

Chez moi aussi ça marche (XP SP2)
au passage, Microsoft recommande de pas faire while(GetMessage(&msg, NULL, 0, 0)) à cause des éventuelles erreurs (retourne -1), mais bon...
dimanche 8 avril 2007 à 19:18:18 | Re : Hook WH_MOUSE_LL

vecchio56

Administrateur CodeS-SourceS
Je viens de remarquer que quand le thème Windows XP est désactivé je ne rencontre pas le problème.

_____________________________________
Un éditeur de ressources gratuit pour Windows

dimanche 8 avril 2007 à 20:12:26 | Re : Hook WH_MOUSE_LL

racpp

Administrateur CodeS-SourceS
Chez moi ça marche avec les thèmes  Windows XP et Windows classique.

dimanche 8 avril 2007 à 20:51:28 | Re : Hook WH_MOUSE_LL

SAKingdom

Membre Club
Tu ne supprime pas le hook avec UnhookWindowsHookEx ?

C++ (@++)

dimanche 8 avril 2007 à 21:09:34 | Re : Hook WH_MOUSE_LL

vecchio56

Administrateur CodeS-SourceS
Non, mais de toutes facons le blocage intervient avant que je ne ferme la fenêtre (c'est quand j'appuie sur le bouton de la souris que ca se bloque, pas quand je le relache)

_____________________________________
Un éditeur de ressources gratuit pour Windows

dimanche 8 avril 2007 à 21:19:51 | Re : Hook WH_MOUSE_LL

SAKingdom

Membre Club
Bizarre, car ça fonctionne aussi très bien pour moi.

C++ (@++)

lundi 16 avril 2007 à 14:54:04 | Re : Hook WH_MOUSE_LL

Barrack

Au passage, tu as oublié de faire un Unhook à la fin de ton programme... Je sais pas si ca vient de là ou pas...

Woods


Cette discussion est classée dans : wparam, return, hinstance, lparam, wndcls


Répondre à ce message

Sujets en rapport avec ce message

Je trouve pas le bon code [ par vah bi ] Bonjour à tous , voilà je débute en c et comme editeur j'ai le visual c++.Je  fais actuellement une application avec l'api de visual c++  mais en lang lire un fichier wav [ par youma85 ] salut tous le monde lorsque j'execute ce programme on me donne ses erreur#include #include #include "resource.h"HINSTANCE hInst;LRESULT CALLBACK MainP interface en c [ par Med2009 ] salut je suis Mohamed un petit développeur en c et qui désire etre le plus grand développeur dans le monde... WIN32 : Editbox non editable avec une boite de dialogue CHILD [ par Pistol_Pete ] BonjourVoila mon problème: J'ai créé une fenêtre et dans cette fenêtre j'ai une boite de dialogue avec le style WS_CHILD. Tous mes contrôles de cette Problème de message windows [ par Jbs106 ] Bonjour Bonjour, comme je l'ai précisé dans le titre, je souhaite réaliser une application de dessin, un SKETCHER avec les MFCs, je l'ai réalisé grac Pb sur un ptit bout de prog en DirectX.... [ par Haldwin ] Salut a tous....Voila j'ai deux ptits pbs quand je lance cette appli ci-dessous... (VC++)La première est q'une fois sur deux ma variable hWnd apres le Dll Visual Aide [ par TheMaster ] Salut!j'ai un probleme, j'ai créer un logiciel permettant de visualiser des images.Les images sont stocke en ressource dans un dll.Mais je n'arrive pa PB EditBox [ par SfyLer ] Bonjour à tous !J'ai créé un scanner de port sous dos, et j'ai commencer a le faire sous windows, j'ai presque fini le seul pb que j'ai c'est que je n


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales