begin process at 2012 05 27 19:55:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > HOOK CLAVIER

HOOK CLAVIER


 Information sur la source

Note :
9,5 / 10 - par 4 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :hook, clavier Niveau :Débutant Date de création :09/11/2003 Date de mise à jour :02/05/2006 00:00:49 Vu / téléchargé :9 418 / 1 362

Auteur : BruNews

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (42)
Ajouter un commentaire et/ou une note


 Description

Demo pour question forum.
Hook systeme est dans DLL qui exporte Intercepte() et Relache().
Appui sur F8 quand hook actif insere la date dans la 1ere Notepad trouvee en lui simulant un F5. Attention que ceci est valable avec nimporte quelle fenetre en 1er plan. Prog de test y est aussi, plusieurs appuis de suite sur bouton Hook ne genent en rien, idem pour l'autre.
Tout dans le zip.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Dll
    •   release
      • WinAmp.dllTélécharger ce fichier [Réservé aux membres club]40 960 octets
      • WinAmp.libTélécharger ce fichier [Réservé aux membres club]1 886 octets
    • WinAmp.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier837 octets
    • WinAmp.defTélécharger ce fichier [Réservé aux membres club]67 octets
    • WinAmp.ncbTélécharger ce fichier [Réservé aux membres club]27 648 octets
    • WinAmp.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier901 octets
    • WinAmp.suoTélécharger ce fichier [Réservé aux membres club]8 704 octets
    • WinAmp.vcprojTélécharger ce fichier [Réservé aux membres club]3 641 octets
  •   WinAmp
    •   release
      • WinAmp.dllTélécharger ce fichier [Réservé aux membres club]40 960 octets
      • WinAmp.exeTélécharger ce fichier [Réservé aux membres club]23 552 octets
    • HookAmp.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier167 octets
    • resource.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier587 octets
    • WinAmp.apsTélécharger ce fichier [Réservé aux membres club]33 568 octets
    • WinAmp.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier988 octets
    • WinAmp.libTélécharger ce fichier [Réservé aux membres club]1 886 octets
    • WinAmp.ncbTélécharger ce fichier [Réservé aux membres club]19 456 octets
    • WinAmp.rcTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 314 octets
    • WinAmp.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier901 octets
    • WinAmp.suoTélécharger ce fichier [Réservé aux membres club]8 192 octets
    • WinAmp.vcprojTélécharger ce fichier [Réservé aux membres club]3 543 octets

Télécharger le zip


 Historique

26 octobre 2005 19:47:32 :
site
02 mai 2006 00:00:50 :
commentaire

 Sources du même auteur

Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64)
Source avec Zip Source avec une capture FIND TEXT (WIN64)
Source avec Zip DELETE DIRECTORY (WIN64)
Source avec Zip ENUM DIRECTORY (WIN64)
Source avec Zip TEMPLATES C/C++ POUR VS 2010

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MOUSECONTROL par NeoUmbrella
Source avec Zip BEEPER, UTILISER UN HOOK CLAVIER INTÉGRÉ À L'EXÉCUTABLE ET G... par ndubien
Source avec Zip Source avec une capture HOOK CLAVIER AVEC DLL EN C++ [DEV-C++] par victorcoasne
Source avec Zip DÉTOURNER LA FRAPPE CLAVIER par racpp
Source avec Zip Source avec une capture KEYLOGGER HOOK CLAVIER (SANS DLL) par kerneltony95

Commentaires et avis

Commentaire de bdkiller le 10/11/2003 01:01:34

Un superbe exemple de HOOK. Vraiment ce que j'avais besoin!
Merci BruNews, et bonne continuation.

Commentaire de garslouche le 10/11/2003 08:35:14

C'est joli!

Juste un truc (pour une fois qu'il y a une critique à faire à BruNews...) tu aurais pu éviter les goto. Quand ça aide à la compréhension du code je n'ai rien contre mais là je trouve que c'est un peu limite, non ?

Sinon sur le reste c'est nickel chrome !

Commentaire de radada le 18/11/2003 17:58:07

merci brunews, je vais checker ça demain et le modifier un peu (je pense) pour l'adapter à mon cas. Cela ne te dérange pas j'espère???? Merci encore pour tes conseils :)

Commentaire de radada le 18/11/2003 18:05:31

Euh c normal que c'est un truc winamp?????

Commentaire de BruNews le 18/11/2003 18:11:38 administrateur CS

winamp c'est juste le nom de depart pour cause d'exemple demande puis finalement je l'ai pose ici en esperant qu'il serve.
Quand on pose une source c'est justement fait pour que les gens s'en servent en apportant les modifs dont ils ont besoin.

Commentaire de radada le 18/11/2003 18:14:03

OK merci bcp : ). Je vais tacher de comprendre comment ça marche demain, parce que là, j'ai une grippe de folie : ((((. Merci encore Brunews ; )

Commentaire de glipper le 13/12/2003 21:27:53

Moi je n'arrive pas à compiler, mais je n'ai jamais utilisé de Dll.
Lors de la compilation, il me dit :
"invalid file or disk full: cannot seek to 0x3faebd8c"
Y a t-il quelque chose de special a faire avant de compiler ?
Glipper

ps : j'utilise Visual C++ 5.0

Commentaire de BruNews le 13/12/2003 21:35:01 administrateur CS

DLL ou exe qui ne compile pas ?

Commentaire de glipper le 13/12/2003 21:37:33


Je n'ai pas touché à la Dll.
C'est lors de la compilation de l'exe.
Glipper

Commentaire de BruNews le 13/12/2003 21:47:27 administrateur CS

Alors efface et recommence.
Tu crees un projet win32 APP et VIDE, de suite en mode RELEASE.
Tu copies dans le dossier cree par VS tous les fichiers, cpp, h, lib et rc qu'il y a dans dossier exe du zip. Tu passes dans VS, inserer fichiers existants *.*, et tu les selectionnes tous en 1 seule passe (sauf le lib). Doit compiler.

Commentaire de glipper le 13/12/2003 21:52:23

Non ya rien à faire, toujours la même erreur.
Bon tant pis :'(
J'ai à peu pres compris le code :)
Merci... Glipper

Commentaire de Tyrael369 le 16/12/2003 16:08:56

J'ai une question , comment le faire sans dll ?

Commentaire de BruNews le 16/12/2003 16:24:09 administrateur CS

Ce hook se fait pas sans dll, tout hook de portee globale systeme doit se trouver dans une dll qui sera mappee dans chaque processus.

Commentaire de Tyrael369 le 16/12/2003 16:30:16

ok merci mais je pensais que l'on pouvait le faire, comme les trojans qui font keyloggers tout ça :-P

Commentaire de BruNews le 16/12/2003 16:46:28 administrateur CS

Il y a d'autres moyens d'interception clavier dont le Filter Driver qui est en mode kernel mais il est question ici de hook global donc DLL.

Commentaire de Tyrael369 le 16/12/2003 16:48:05

ok merci

Commentaire de Omeya le 22/12/2003 14:57:19

Ton hook est excellent BruNews ! Javais cherché de nombreux moyens de faire un hook, sur le net, mais aucun ne me donnait satisfaction :(

Merci Bocou pour ton aide :))

Commentaire de sympman le 22/07/2004 14:39:48

Salut
existe t'il un hook qui permette de controler une applet java.
Je m'explique, plutot que d'ecrire du texte dans une fenetre bloc note par exemple, je souhaiterais ecrire dans une applet (qui est aussi dans une fenetre d'ailleurs).
Merci d'avance !

Commentaire de BruNews le 22/07/2004 14:53:27 administrateur CS

J'ignore tout du monde java. Ceci dit, une fenetre que soit creee par java ou autre, c'est toujours le systeme qui la fait a la finale donc aucune raison qu'on ne l'intercepte pas du moment qu'on obtient son handle.

Commentaire de betapoil le 26/07/2004 08:20:00

Bonjour,

Je débute en C++, edt j'essaie de comprendre les hooks, j'ai globalement compris votre exemple.
Mais lorsque je décide de le recompiler (sans modifs pour commencer) avec BC++ 5.0 j'obtient une erreur :

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE, PSTR, int)
{
  DialogBoxParam(hinst, (LPCTSTR)IDD_APP, 0, AppDlgProc, 0);   /// <- ICI <-
  return 0;
}

voila le détail :

[C++ Erreur] WinAmp.cpp(35): E2034 Impossible de convertir 'int (__stdcall *)(void *,unsigned int,unsigned int,long)' en 'int (__stdcall *)()'
[C++ Erreur] WinAmp.cpp(35): E2342 Mauvaise correspondance de type dans le paramètre 'lpDialogFunc' ('int (__stdcall *)()' désiré, 'int (__stdcall *)(void *,unsigned int,unsigned int,long)' obtenu)

Merci de me donner un petit coup de main ;-)

Commentaire de BruNews le 26/07/2004 11:15:06 administrateur CS

La desole je ne peux rien, la ligne avec DialogBoxParam respecte scrupuleusement la syntaxe win32, faut voir avec le sabir de BC++ que je ne pratique pas.

Commentaire de sympman le 28/07/2004 15:23:11

Merci !

Connais tu un moyen pour obtenir le handle d'une fenetre ?

Commentaire de glipper le 28/07/2004 15:30:06


FindWindow si tu connais le nom de ta fenetre je pense...

++ Glipper

Commentaire de sympman le 28/07/2004 15:46:53

Merci !

Commentaire de betapoil le 05/08/2004 22:18:40

Salut, BruNews

J'ai pas mal potassé ton exemple et ca m'a bien aidé, j'aimerai juste une précision :

LRESULT CALLBACK kbdFunct(int nCode, WPARAM wParam, LPARAM lParam) {
if(nCode >= 0) {

    if(wParam != VK_F8) goto defRet;
    if(lParam & 0x80000000) goto defRet; // 1 SEULE FOIS  <<-- ICI

Merci de m'expliquer l'intéret de cette ligne, et le fonctionnement de lParam. Visiblement tu l'a controlé avec un masque mais je n'arrive pas à comprendre ce que tu cherches a détecter.

Merci

Commentaire de BruNews le 05/08/2004 22:29:01 administrateur CS

Si tu avais lu MSDN tu aurais vu:
lParam, bit 31: Specifies the transition state. The value is 0 if the key is being pressed and 1 if it is being released.
Alors si on ne controle pas le dernier bit (avec le masque) on enverra 2 fois F5 (down et up de la touche).

Commentaire de betapoil le 11/08/2004 21:10:41

ok, merci

Commentaire de betapoil le 13/08/2004 21:09:56

Salut,

J'ai encore une petite question bien bizarre ....
encore merci pour ton exemple; je commence à bien me débrouiller avec les hook systèmes. Mais connais tu un moyen pour intercepter et envoyer des touches à une application DirectX.

(Les hooks systèmes classiques ne donnent rien sous une app DirectX, je pense que cela vient du fait que DX utilise DirectInput mais j'arrive pas à trouver d'infos)

Commentaire de BruNews le 13/08/2004 21:17:00 administrateur CS

Aucune idee, je ne pratique pas. Faut regarder les nombreux exemples du SDK s'il n'y aurait pas ce qui t'interesse.

Commentaire de GWW le 31/08/2004 17:22:34

j ai le meme probleme que toi betapoil...
avi aux pros!!

Commentaire de etienne3d le 13/02/2005 10:45:09

Salut,
Sous Dev-c++, pour la compilation de la dll hook clavier, j'utilise les parametres pour le  compilatuer:

-DBUILDING_DLL=1
-strip-unneeded
-s
-mdll
-fPIC

et les parametres pour le linker:

--add-stdcall-alias
--kill-at
-A
-k
-s
-strip-unneeded
-mdll
-def WinAmp.def

dans les options du projet.

Le resultat donne 4 warnings (2x2):

Warning C:\Documents and Settings\etienne3d\Bureau\Bureau\cppfrance_source_17818\Dll\Warning resolving _Intercepte by linking to _Intercepte@0

Warning C:\Documents and Settings\etienne3d\Bureau\Bureau\cppfrance_source_17818\Dll\Warning resolving _Relache by linking to _Relache@0

en 2 fois de suite mais il compile.

L'executable par contre renvoie ses 2 erreurs:

  [Linker error] undefined reference to `Intercepte@0'
  [Linker error] undefined reference to `Relache@0'
C:\Documents and Settings\etienne3d\Bureau\Bureau\cppfrance_source_17818\WinAmp\Makefile.win [Build Error]  [WinAmp.exe] Error 1

Please help me! g essayer de remplacer "__stdcall" par "__declspec (dllexport) ", je reussi plus ou moins à compiler mais le hook cesse de  fonctionner dès que je bouge la souris.
Quelqu'un a t-il une soluce et qui est dans le meme cas?

Commentaire de diiplayer le 16/12/2005 17:12:35

Salut, je crois que ta dll pourrait m'être utile pour un programme que je fait en Visual basic 6, le problème que je rencontre c'est que j'ignore comment l'utilisé : /  (comment l'intégré a mon projet et comment faire pour y faire appelle). Sa serait sympa si tu pouvais m'éclairer un peu sur le sujet.

Commentaire de BruNews le 16/12/2005 19:02:12 administrateur CS

Impossible d'"intégrer" une DLL en VB comme on le fait en C à la compilation avec un lib.
Suffit de mettre la déclaration API de la DLL dans un bas VB:
Declare Function Intercepte().... As Long
Declare Sub Relache()...
et tu utilises les 2 fonctions.

Commentaire de diiplayer le 17/12/2005 13:18:05

Merci bien ! Je profite de ma présence pour vous souhaiter un joyeux noel!

Commentaire de Sn00bino_roi_du_petrol le 04/03/2006 15:00:50

Je suis sous devc++ et j' ai essayer de compiler ton code.
Y me met des erreurs qui partent en changeant __stdcall

#if BUILDINGDLL
#define DLL __declespec(dllexport)
#else define DLL __declespec(dllimport)

et devant les fonctions je remplace _stdcall par DLL.

tout sa ce compile mais le hook n' a aucun n 'effet.
Sa m' est deja ariv" avec d' autre hook.Je n' ai jmais reussi a avoir un hook.

SI quelqun pouvait m' eclairer.

Merci d' avance

Commentaire de Sn00bino_roi_du_petrol le 04/03/2006 16:19:18

Non en fait ton code marche.Mais ne marche plus si ta fenetre n 'est pas en premier plan.Je m' en etais pas rendu compte puisque a chaque fois je mettais notepad en premierplan.
Cela dit, comment faire pourque cela marche meme quand on n' est pas en premier plan ?

Commentaire de BruNews le 04/03/2006 16:36:59 administrateur CS

Je viens de tester avec CETTE fenêtre de navigateur (IE chez moi) en 1er plan (et focus), j'appuie F8 et date/heure son bien insérés dans la 1ere notepad ouverte qui a été trouvée.

Commentaire de Sn00bino_roi_du_petrol le 04/03/2006 17:11:19

Excuse moi je me suis mal exprimé je voulais parler de la boite de dialog du hook.

Pour que cela fonctionne chez moi il faut que la boite de dialog du hook soit en premier plan et que une fenetre notepasd soit ouverte(non minimizé)

J' ai testé le exe donné dans le zip et il marche exactement comme tu viens de le dire(pas besoin que le hook soit en premier plan)

Il y a t-il des chose speciales a faire dans le projet ?

Merci d' avance,

++

Commentaire de BruNews le 04/03/2006 20:35:00 administrateur CS

Juste compiler avec le h et lib de la DLL.

Commentaire de Sn00bino_roi_du_petrol le 04/03/2006 21:54:16

C 'est ce que je fais.A part que j' ai un a au lieu d' un lib.

Commentaire de zibo3 le 29/03/2006 13:38:24

Bonjour,

J'utlise actuellement un hook global pour recuperer des événements windows et tout fonctionne bien.
Sauf que lorsque j'utilise la fonction UnhookWindowsHookEx, ma dll qui s'est attaché à tous les processus grace au SetWindowsHookEx ne se détache pas de tous les processus. Comment faire pour s'assurer que ma DLL se decharge bien de tous les process à laquelle elle c'est attaché?
Ne me dites pas qu'il faut tuer le processus parce que justement c'est ce que je veux éviter.
Merci

Commentaire de BruNews le 29/03/2006 13:43:15 administrateur CS

Si ne décharge pas c'est qu'il y a un malaise de conception car elle DOIT être déchargée.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

hook global [ par Xentor609 ] Salut,Je sais bien que ca enerve certain les questions sur les hooks, mais al trouve vraiment pas.Je souhaiterais placer un hook sur le clavier, pour hook clavier ? [ par momow ] Bonjour,Je souhaite intercepter tous les évènements clavier et souris sur un système grâce à une application au premier plan : si l'application n'est PB d hook clavier et variable de control [ par alanBZH29 ] Salut a tous j debute ss VC6.0++ et jai un petit pb, jai utilisé un hook clavier pr recupere les touches appuyé sur une boite d dialoge ca ca marche y HOOK clavier [ par alanBZH29 ] bon voila jai un pb mon hook clavier marche sous win 98 mais pas sous XP je comprend vraiment pas la, merci pour tte les reponse possible Quels sont les paramètres d'un Hook clavier [ par LaPatoshe ] bonjour et meilleurs voeux.Je viens de cr&#233;er une DLL contenant un hook interceptant les messages du clavier (WH_KEYBOARD). Losrque l'utilisateur Problème de hook clavier [ par Oeil_de_taupe ] Bonjour tout le monde, Je suis en train de créer un programme me permettant d'utiliser qu'un seul clavier sur deux ordinateurs (grâce à une connectio Hook clavier sous windows [ par gamani5 ] sltje sais il y a deja beaucoup de tuto sur le sujet mais j en ai lu plein mais j ai toujours un probleme, j arrive a detecter l utilisation d une tou Problème Hook Clavier [ par MorbhAck ] Bonsoir tout le monde !Alors j'ai beaucoup de difficulté a utiliser la fonction SetWindowsHookEx()Premièrement je compile avec Visual C++ 6.0 et losqu Hook clavier [ par victorcoasne ] Bonjour, J'ai un pavé numérique USB mais quand je tape dessus il me met les caractères du haut du clavier : 1 c'est &; 2 c'est é; 3 c'est " ... Pour Hook clavier pendant progressbar [ par goutbouyo ] Salut,Je voudrais mettre un hook général sur le clavier pendant une progress bar.J'ai essayé en mettant un WinExec sur un programme trouvé sur ce site


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 : 0,109 sec (4)

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