begin process at 2010 03 19 08:04:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

Probème avec un hook


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

Probème avec un hook

lundi 31 mars 2008 à 19:08:34 | Probème avec un hook

Chayy

Bonjour,
je rencontre actuellement un petit soucis avec un hook. J'essaye de poser un hook souris, et d'effectuer un traitement lorsque le pointeur de la souris entre dans une certaine zone.
Le code du hook est contenu dans ma dll, et j'ai fait un petit programme de test, qui, lorsque que je clique sur un bouton, appelle la procédure d'installation du hook qui se trouve dans la dll. C'est lors de l'appel de la fonction SetWindowsHookEx que ca pose problème, le handle est égal a NULL, et je ne comprend pas pourquoi ...

Voici le code de ma dll :

[code]
//---------------------------------------------------------------------------
#include <windows.h>
#pragma hdrstop

// Exported functions
extern "C" __declspec(dllexport)bool InstallMouseHook();
extern "C" __declspec(dllexport)bool RemoveMouseHook();

// Declarations
LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam);

// Global variables
HHOOK HookHandle;
HINSTANCE DllInstance;
bool IsInRect=false;

QList<QList<QList<QAction *>>> Menus;
QRect Rect1;

//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
  DllInstance=hinst;
  return 1;
}
//---------------------------------------------------------------------------
bool InstallMouseHook()
{
   
  HookHandle=SetWindowsHookEx(WH_MOUSE,
      reinterpret_cast<HOOKPROC>(MouseProc),DllInstance,0);
  if (HookHandle==NULL)
  {
      MessageBox(0,"bali balo","Whatever",MB_OK | MB_ICONEXCLAMATION);
        return false;
  }
  else return true;
}
//---------------------------------------------------------------------------
bool RemoveMouseHook()
{
   
  if(UnhookWindowsHookEx(HookHandle)==0)
  {
    MessageBox(0,"balo bali","Whatever",MB_OK | MB_ICONEXCLAMATION);
    return false;
  }
  else return true;
}
//---------------------------------------------------------------------------
void SendArray(QList<QList<QList<QAction * >>>tab)
{
  Menus = tab;
}

//---------------------------------------------------------------------------
LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam)
{
  if (code<0)
  {
    return CallNextHookEx(HookHandle,code,wParam,lParam);
  }
 

QDesktopWidget *Bureau= new QDesktopWidget();
int x = Bureau->primaryScreen();
Rect1 = Bureau->availableGeometry(x);

QRect *Rect2 = new QRect(Rect1.x(),0,1,1);
QRect *Rect3 = new QRect(0,0,200,200);

 POINT MousePos;
 GetCursorPos(&MousePos);

MessageBox(0,"dll marche ","Whatever",MB_OK | MB_ICONEXCLAMATION);

 HWND hWndUnder =WindowFromPoint(MousePos);
if ( hWndUnder == NULL)
    {

        if ( Rect3->contains(MousePos.x,MousePos.y))
        {

            MessageBox(0,"dans le rectangle","Whatever",MB_OK | MB_ICONEXCLAMATION);

           
        }


  return CallNextHookEx(HookHandle,code,wParam,lParam);
}
//---------------------------------------------------------------------------
[/code]

Et le code du bouton de mon programme de test :

[code]
 void Mainwindow::mettre()
 {
   

 MyPrototype myFunction = (MyPrototype) myLib->resolve("InstallMouseHook");
 if (myLib->isLoaded())
 {
     infoLabel->setText("lib chargée");
 }
 else
 {
    infoLabel->setText("lib non chargée");
 }

 if (myFunction())
 {
    
    infoLabel2->setText("fct chargée");
 }
 else infoLabel2->setText("fct non chargée");
 }

[/code]

J'utilise Qt pour effectuer des choses un peu plus complexe, je devraia créer un menu à partir d'un xml par la suite dans la fonction mouseproc, au lieu de faire simplement une messagebox...


Cette discussion est classée dans : code, return, hook, mb, if


Répondre à ce message

Sujets en rapport avec ce message

Simple Hook (DLL) qui plante GetMessage ! Je suis nul ou quoi ? [ par dam1dam1 ] Bonjour. Je ne suis pas un pro du Hook et j’ai un peu oublié tout ca, mais vu toutes les bonnes sources et annotations qui trônent ici, je pensais po recherche un texte spécifié....!!!! [ par mejdimm ] Salut tout le monde.!!!!!!je vous propose ici un code source : "recherche un texte spécifié" dans tous les fichiers texte de votre disque dur, l'utili C++ recherche un texte spécifié....!!!! [ par mejdimm ] Salut tout le monde.!!!!!! je vous propose ici un code source : "recherche un texte spécifié" dans tous les fichiers texte de votre disque dur, l'util port serie sous linux rts txd drt source piklab [ par zemil ] je sui sous linux depuis peux je program avec kdevelope en c++ par hazard j'ais trouvé un logiciel qui arive a faire se que je recherche jé ais donc r ce code ne marche pas?????????? [ par banak3181 ] s'il vous plait les gars je veux que quelqu'un me disent pourquoi ce code ne marche sur dev C++:#include #include #include #include # include<myconio. arbre de huffman en c [ par Mouzby ] Bonjour tout le monde, Je viens avec beaucoup d'espoir pour demander votre aide sur ce forum, c'est à propos de la conception du programme de l'arbre Operateur logique le + rapide [ par Neo_Fr ] Bonsoir, je suis en train de me demander quelle est l'operateur logiques le + rapide, ex: Est t'il plus rapide de faire: if(a != b) return 0; ou if(a Table de hachage avec patronyme [ par guitoontruant ] Bonjour, Désolé, j'avais d'abord poster dans les discussions libres.Voilà je dois créer une table de hashage de patronymes par le biais de N entrées,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,328 sec (4)

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