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

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

les hooks


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

les hooks

lundi 13 mars 2006 à 14:54:02 | les hooks

faico

Salam
j'ai trouvé un code pour un programme qui install un hokk de clavier pour empecher la touche imprimer ecran.
Mais je compile le programme cela ne marche pas il ne me donne rien, aidez moi s'il vous plait .
voila le code :
la DLL :
#include <windows.h>
#define WH_KEYBOARD_LL     13
/*
typedef struct {
    DWORD vkCode;
    DWORD scanCode;
    DWORD flags;
    DWORD time;
    ULONG_PTR dwExtraInfo;
} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; */

HINSTANCE moduleCourant;
HHOOK hookClavier;

LRESULT CALLBACK fonctionIntercepteClavierLowLevel (int nCode, WPARAM wParam, LPARAM lParam)
{
        MessageBox(NULL,"func",0,0 );
    if(nCode == HC_ACTION)
    {
        KBDLLHOOKSTRUCT kbStruct = *((KBDLLHOOKSTRUCT *)lParam);
        switch(wParam)
        {
            case WM_KEYDOWN:
                if (kbStruct.vkCode == VK_LWIN || kbStruct.vkCode == VK_RWIN) // bloque touches windows
                    return 1;
                if (kbStruct.vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL)) // bloque control+echap
                        return 1;
                if (kbStruct.vkCode == VK_SNAPSHOT) // bloque impr écran
                   return 1;
        }
    }
    return CallNextHookEx(hookClavier, nCode, wParam, lParam);
}

extern "C" __declspec(dllexport) int installeLeHookClavier()
{
    if( !hookClavier )
    {
         MessageBox(NULL,"install",0,0 );
        hookClavier  = SetWindowsHookEx(WH_KEYBOARD_LL, fonctionIntercepteClavierLowLevel, moduleCourant, 0);
    }
    return (int) hookClavier;
}

extern "C" __declspec(dllexport) void ArreteLeHookClavier()
{
        MessageBox(NULL,"arret",0,0 );
    if(hookClavier)
    {
                  
        UnhookWindowsHookEx(hookClavier);
        hookClavier = 0;
    }
}

BOOL WINAPI DllMain (HINSTANCE hDll, DWORD dwReason, LPVOID Reserved)
{
    if (dwReason == DLL_PROCESS_ATTACH)
    {
        moduleCourant = hDll;
    }
    if (dwReason == DLL_PROCESS_DETACH)
    {
        ArreteLeHookClavier();
    }
    return 1;
}

 Le programme main :
#include <windows.h>
#include "resource.h"

#pragma comment( lib, "hookToucheWindowsDll.lib" )

//extern "C" int __stdcall installeLeHookClavier();

//extern "C" void __stdcall ArreteLeHookClavier();
typedef void (*TEndFunc)();
TEndFunc installeLeHookClavier;
TEndFunc ArreteLeHookClavier;
HINSTANCE hinstDLL;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    hinstDLL = LoadLibrary("hook.dll");
    installeLeHookClavier=(TEndFunc)GetProcAddress(hinstDLL, "installeLeHookClavier");
    ArreteLeHookClavier=(TEndFunc)GetProcAddress(hinstDLL, "ArreteLeHookClavier");
    installeLeHookClavier();
    Sleep(60000);
    ArreteLeHookClavier();
    return 1;
}

Merci d'avance.
lundi 13 mars 2006 à 14:58:34 | Re : les hooks

Joky

Membre Club
Teste le retour des tes fonctions LoadLibrary
et GetProcAddress
Si pas le bon retour, tu seras d'où ça peut venir

if(!Meilleur("Joky")) return ERREUR;<

lundi 13 mars 2006 à 15:04:43 | Re : les hooks

faico

LoadLibrary et GetProcAddress marche tres bien je l'ai tester
lundi 13 mars 2006 à 16:28:32 | Re : les hooks

Gendal67

Salut,

sans faire de préjudice, tu n'utiliserais pas Dev-C++ par hasard? J'ai jamais réussi à faire fonctionner un hook avec; avec n'importe laquelle des sources présentes sur ce site.

lundi 13 mars 2006 à 16:36:08 | Re : les hooks

faico

le probleme est dans le dll
parceque lorsque je fait FormatMessage elle me donne l'erreur suivante :

impossible d'établir un hook non local sans un descripteur de module

lundi 13 mars 2006 à 16:36:57 | Re : les hooks

faico

oui j'utilise DevC++

lundi 13 mars 2006 à 16:40:00 | Re : les hooks

Gendal67

Lol ok..et juste pour me rassurer, tu as déja réussi à compiler un programme de hook qui fonctionne ensuite, avec Dev-C++ ? Après avoir cherché où ça collait pas, j'ai fini par abandonné temporairement, le temps d'apprendre précisément avec un livre comme faire des hooks.

lundi 13 mars 2006 à 16:46:56 | Re : les hooks

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Gendal67 > Tu as vraiment essayé tous les codes de hook sur le site? Voir réponse ci-dessous.

faico > Tu peux utiliser mon code source de hook global clavier sans DLL. Pas besoin donc de DLL, ça compile bien sur Dev-C++ et le hook fonctionne parfaitement. Voici la source:
http://www.cppfrance.com/codes/HOOK-GLOBAL-SANS-DLL_27169.aspx

lundi 13 mars 2006 à 17:02:23 | Re : les hooks

Gendal67

racpp> Je viens de tester ta source....en effet, ça compile et marche même avec Dev!

lundi 13 mars 2006 à 18:15:12 | Re : les hooks

faico

Le probleme c'est avec setwindowshookex elle me donne l'erreur suivante
impossible d'établir un hook non local sans un descripteur de module

1 2

Cette discussion est classée dans : int, return, hinstance, hookclavier, arretelehookclavier


Répondre à ce message

Sujets en rapport avec ce message

probleme avec une boite de dialogue [ par anonyme_man_in_this_world ] salut !! ça sera simpa si vous m'aidiez a corriger ce code ******************************************************************************* # tableau [ par imanedaoudi ] Salut,Je veux récuperer le tableaux triée sans faire return, avec ce programme je recupere le tableau non trier ,comment faire pour recuperer le tab t probleme reallocation memoire vecteur [ par savoyard ] double *b;//fction allocation memoire: (permet d'allouer pas obligatoirement à partir de b[0] mais d ou on veut:double *dvector(int nl,int nh){double Exe reste en mémoire (WIN32) [ par Urgo ] Bonsoir à tous, j'ai encore un soucis lié à la suppression de l'utilisation de la CRT, en indiquant un point d'entrée perso au linker. Je travaille s Help Au secours [ par NAVIE ] Bonjour, j'écris ce message pour un problème que j'ai avec un de mes programmes. Je compile avec DevCpp Version 4.9.9.2 et j'ai crée deux fichiers sou ou est l'erreur?(dll) [ par anthonycosson ] bon voila jai fais une classe en c++ .NET et je desire en faire une dll mais bon voila il   y a plein de probleme que j'ai du mal à saisir... // dll.h probleme de dll [ par lamoueste ] j'ai un probleme avec ma dll : il s'agit d'une fonction qui doit lance une fenetre (dialog box ) en modal mais j'ai une "assertion failed" :( et je ne [Dev C++] disparition hook [ par erehtnaP ] Salut, je commence en C++, et je voudrais creer un hook global avec Dev-C++ Le code de la dll et de l'exe se compile sans erreur, les fonction de mis Problème de linker dans programme de base. [ par vith17 ] Bonjour,J'ai tapé le code suivant sous Dev-C++. Lorsque je lance la compilation, il me revoie l'erreur suivante :    [Linker error] undefined referenc tracer une courbe à partir d'un tableau dans une fenêtre [ par jul41 ] Salut! je dois réaliser un projet dont une partie consiste à tracer une courbe caractérisant une force appliquée sur un capteur. J'essaie pour ça de f


Nos sponsors


Sondage...

Comparez les prix

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

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