begin process at 2012 02 11 02:35:00
  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 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 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 Question gestion bibliotheque code c [ par nicolas92c ] Bonjour, j'ai un code non fini qui permet de gérer une bibliotheque. Ajouter ou supprimer un lecteur ou un livre : ok mais pour consulter les lecteurs Conversion code [ par jeanphilippe37 ] [u]Bonjour[/u], Voila, j'ai réalisé ce programme en C++ mais, je dois le rendre en langage C et j'ai bcp de mal à faire la traduction. Pourriez vous Petite question sur if( x || y || z) [ par G0ss3Yn ] Bonjour, J'ai lu je ne sais plus où (ou en tout cas j'ai ça en tête) que le test [code=cpp]if( x || y || z) paf( ) ;[/code] est en fait la même chos [Jeu] Problème dans mon code [ par Baltronard ] Bonjour à toutes et à tous. Voila j'ai quelques petits soucis avec mon code en C (pas c++) pour la création d'un puissance 4. Il se trouve que ma fo comparer deux string [ par roubalist21 ] voici le code: [code=cpp]for(i=0;i<maxDF;i++) { for(j=1;j<(maxS+1);j++) { if(tabDF[i][j]!=NULL) { for(k=0;k<=fins;k++) { if(ta Probleme Fichier C++ [ par florianlens ] Bonjour, je dois modifier un code sous C++ Builder et j'ai un problème au niveau des fichiers [code=cpp]bool TUser::readFromFile(std::ifstream &iff)


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 2,839 sec (3)

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