Accueil > Forum > > > > les hooks
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
|
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
|
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
|
|
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
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft 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
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
|