begin process at 2012 02 17 08:41:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > HOOK CLAVIER + SOURIS ( PERMET UN BLOQUAGE DU CLAVIER ET/OU DE LA SOURIS )

HOOK CLAVIER + SOURIS ( PERMET UN BLOQUAGE DU CLAVIER ET/OU DE LA SOURIS )


 Information sur la source

Note :
7,55 / 10 - par 11 personnes
7,55 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :clavier, souris, hook Niveau :Initié Date de création :14/06/2005 Date de mise à jour :15/06/2005 19:49:00 Vu / téléchargé :14 367 / 1 443

Auteur : MaxSoldier

Ecrire un message privé
Site perso
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Cette source a pour but de présenter le Hooking. Le hooking est un moyen de "capturer" les messages envoyés à notre application, de les traiter, et de décider de les faire suivre ou non. Ici, nous allons juste capturer les messages du clavier et ne pas les renvoyer. Ainsi, le clavier ne fonctionnera plus. Pareil pour la souris. Biensur, il y a d'autres moyens de bloquer le clavier ou la souris beaucoup plus simple, mais cette technique permet de beaucoup de chose.

Je sais aussi qu'il y a de nombreuse source sur le bloquage clavier et souris mais elles ne marchaient pas grace au hooking et une fois le bloquage effectué, il fallait rebooter...

PS: Je ne l'ai pas encore commenté, mais ça viendra dans la semaine...

Source

  • Option Explicit
  • Global HookHandleClip As Long
  • Global HookHandleMouse As Long
  • Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
  • Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
  • Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
  • Public Const WH_MOUSE = 7
  • Public Const WH_KEYBOARD_LL = 13
  • Public Const HC_ACTION = 0
  • ' ###################################################################################################
  • ' Hook Clavier#######################################################################################
  • ' ###################################################################################################
  • Function HookClipBoard() As Integer
  • On Error GoTo HandledErr
  • ' Dans cette fonction, je lance un hooking clavier. Le 1er paramètre définit l'IDHook
  • ' ( en l'occurence le clavier ).
  • ' ( L'IdHook est définit par des constantes qui sont dans la visionneuse d'API )
  • ' Le 2ème paramètre est l'adresse de la fonction qui traite les messages windows.
  • ' Attention , "AdressOf" ne peut être utilisé que pour un fonction qui est dans un module.
  • ' Le 3ème paramètre est la DLL qui contient la procédure de Hook ( Ici, c'est l'instance du programme
  • ' qui contient cette procédure ( HookRedirClip )
  • ' Le dernier paramètre, est le thread sur lequel agit le hook. "0" permet de ne pas définir de thread
  • ' précis, et donc de hooker tous les threads.
  • ' /!\ Si le hook agit sur un thread précis qui a été crée par le programme lui même, il faut
  • ' que le 3ème paramètre ( hmod soit à "NULL" )
  • ' Lancement du Hook => Redirection des messages Windows sur notre fonction HookRedirClip
  • HookHandleClip = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf HookRedirClip, App.hInstance, 0)
  • ' La fonction renvoi 1 si elle à fonctionné, et 0 s'il y a eu une erreur.
  • HookClipBoard = 1
  • Exit Function
  • HandledErr:
  • HookClipBoard = 0
  • End Function
  • Function UnHookClipBoard() As Integer
  • On Error GoTo HandledErr
  • ' Cette fonction est très importante, elle permet de rediriger les messages vers le thread
  • ' d'origine. Si vous ne l'appelez pas avant de quitter, vous devrez rebooter ;-)
  • ' Appel l'API d'Unhooking
  • UnhookWindowsHookEx HookHandleClip
  • ' Pareil que précédent, la fonction renvoi 1 ou 0 selon la réussite ou l'echec de la fonction.
  • UnHookClipBoard = 1
  • Exit Function
  • HandledErr:
  • UnHookClipBoard = 0
  • End Function
  • Public Function HookRedirClip(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  • ' Voici la fonction qui va traiter les messages filtrés par le hook.
  • ' Notre but étant de paralyser le clavier, il nous suffit de ne pas renvoyer les messages
  • ' qui lui sont destinés. Nous renvoyons donc -1 ( Considéré comme valeur Nulle ).
  • HookRedirClip = -1
  • End Function
  • ' ###################################################################################################
  • ' Hook Souris########################################################################################
  • ' ###################################################################################################
  • ' Le principe étant strictement équivalent il nous suffit juste de changer la constante du IdHook.
  • ' Donc : Voir plus haut ! :p
  • Function HookMouse() As Integer
  • On Error GoTo HandledErr
  • HookHandleMouse = SetWindowsHookEx(WH_MOUSE, AddressOf HookRedirMouse, App.hInstance, 0)
  • HookMouse = 1
  • Exit Function
  • HandledErr:
  • HookMouse = 0
  • End Function
  • Function unHookMouse() As Integer
  • On Error GoTo HandledErr
  • UnhookWindowsHookEx HookHandleMouse
  • unHookMouse = 1
  • Exit Function
  • HandledErr:
  • unHookMouse = 0
  • End Function
  • Public Function HookRedirMouse(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  • HookRedirMouse = -1
  • End Function
Option Explicit
Global HookHandleClip As Long
Global HookHandleMouse As Long

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Public Const WH_MOUSE = 7
Public Const WH_KEYBOARD_LL = 13

Public Const HC_ACTION = 0

' ###################################################################################################
' Hook Clavier#######################################################################################
' ###################################################################################################

Function HookClipBoard() As Integer
On Error GoTo HandledErr

' Dans cette fonction, je lance un hooking clavier. Le 1er paramètre définit l'IDHook
' ( en l'occurence le clavier ).
' ( L'IdHook est définit par des constantes qui sont dans la visionneuse d'API )

' Le 2ème paramètre est l'adresse de la fonction qui traite les messages windows.
' Attention , "AdressOf" ne peut être utilisé que pour un fonction qui est dans un module.

' Le 3ème paramètre est la DLL qui contient la procédure de Hook ( Ici, c'est l'instance du programme
' qui contient cette procédure ( HookRedirClip )

' Le dernier paramètre, est le thread sur lequel agit le hook. "0" permet de ne pas définir de thread
' précis, et donc de hooker tous les threads.

' /!\ Si le hook agit sur un thread précis qui a été crée par le programme lui même, il faut
' que le 3ème paramètre ( hmod soit à "NULL" )

' Lancement du Hook => Redirection des messages Windows sur notre fonction HookRedirClip
HookHandleClip = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf HookRedirClip, App.hInstance, 0)

' La fonction renvoi 1 si elle à fonctionné, et 0 s'il y a eu une erreur.
HookClipBoard = 1

Exit Function

HandledErr:
HookClipBoard = 0

End Function

Function UnHookClipBoard() As Integer
On Error GoTo HandledErr

' Cette fonction est très importante, elle permet de rediriger les messages vers le thread
' d'origine. Si vous ne l'appelez pas avant de quitter, vous devrez rebooter ;-)

' Appel l'API d'Unhooking
UnhookWindowsHookEx HookHandleClip

' Pareil que précédent, la fonction renvoi 1 ou 0 selon la réussite ou l'echec de la fonction.
UnHookClipBoard = 1

Exit Function

HandledErr:
UnHookClipBoard = 0

End Function

Public Function HookRedirClip(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

' Voici la fonction qui va traiter les messages filtrés par le hook.
' Notre but étant de paralyser le clavier, il nous suffit de ne pas renvoyer les messages
' qui lui sont destinés. Nous renvoyons donc -1 ( Considéré comme valeur Nulle ).

HookRedirClip = -1

End Function

' ###################################################################################################
' Hook Souris########################################################################################
' ###################################################################################################


' Le principe étant strictement équivalent il nous suffit juste de changer la constante du IdHook.
' Donc : Voir plus haut ! :p

Function HookMouse() As Integer
On Error GoTo HandledErr

HookHandleMouse = SetWindowsHookEx(WH_MOUSE, AddressOf HookRedirMouse, App.hInstance, 0)
HookMouse = 1

Exit Function

HandledErr:
HookMouse = 0

End Function

Function unHookMouse() As Integer
On Error GoTo HandledErr

UnhookWindowsHookEx HookHandleMouse
unHookMouse = 1

Exit Function

HandledErr:
unHookMouse = 0

End Function

Public Function HookRedirMouse(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
HookRedirMouse = -1
End Function

 Conclusion

Je me suis inspiré de la source de Ovidiu Crisan.
http://vbwork.4mg.com

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

15 juin 2005 19:49:00 :
Ajout des commentaires !

 Sources du même auteur

Source avec Zip ARCHIVEUR/DÉARCHIVEUR DE DONNÉES AVEC HUFFMAN
Source avec Zip INTELLISERV ( SERVEUR WEB )
Source avec Zip Source avec une capture LABYRINTHE VIEWER
Source avec Zip Source avec une capture MORPION EN RÉSEAU
Source avec Zip Source avec une capture LIBMOD PROJECT

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DÉMON D'ÉCOUTE par 8Tnerolf8
Source avec Zip Source avec une capture AGITATOR - MACRO UNIVERSELLE par exode42
Source avec Zip INTERCEPTER L'APPUI DE TOUCHES AU NIVEAU SYSTÈME par Fixnyl
Source avec Zip Source avec une capture AJOUTER N'IMPORTE QUEL RACCOURCI À VOS MENUS (HOOK CLAVIER) par violent_ken
Source avec Zip Source avec une capture Source .NET (Dotnet) HOOK : PB DE COMPATIBILITÉ .NET 1.1 ET 2.0 par TeBeCo

Commentaires et avis

Commentaire de MaxSoldier le 14/06/2005 19:21:14

Arf, je vien de remarquer qu'il y avait une source équivalente, désolé

Commentaire de MaxSoldier le 15/06/2005 12:13:09

Mettez des commentaires en notant svp

Commentaire de econs le 15/06/2005 14:26:36 administrateur CS

Ca fonctionne bien. Le code n'est pas trop compliqué, mais je pense que tu devrais rapidement ajouter des commentaires. Ce n'est pas forcément appréhendable par tout le monde.
Dans une semaine, ta source ne sera plus visible sur la page d'accueil de VBFrance, et peu de personnes iront encore la voir.
C'est donc maintenant qu'il fait commenter le code.

Commentaire de MaxSoldier le 15/06/2005 19:26:28

Oki, je le fait ce soir..
++

Commentaire de MaxSoldier le 15/06/2005 19:49:43

Voilì voiloun les commentaires sont ajoutés ! Désolé pour les fautes...

Commentaire de mathieumg le 09/07/2005 06:35:08

Je n'ai pas essayé mais c'est bien commenté :)

Mathieu M-G
mathieumg@qc-net.com

Commentaire de MaxSoldier le 09/07/2005 13:26:26

Mici :D

Commentaire de fehmitn le 16/10/2005 15:02:46

salut
le hook clavier ffonctione mais le hook sourie ne fonctione pas
la sourie bouge toujour

Commentaire de MaxSoldier le 27/10/2005 18:40:13

Ouai, je sais, j'empèche seulement l'utilisateur de Cliquer et non de déplacer sa souris

Commentaire de clementio le 09/03/2006 02:31:06 administrateur CS

Je suis tombé sur cette source en cherchant des infos pour faire un KeyLoger. Et bien je crois que je vais m'en servir de structure, c'est simple et précis tout comme j'aime ;-)...

Juste un point qui m'a fait sourire, pourquoi toutes tes variables concernant le clavier contiennent "ClipBoard" au lieu de "KeyBoard"?
lol, c'est juste pour taquiner un peu!!!

J'met 10, Clm.

Commentaire de cdrick777 le 18/03/2006 05:21:26

C'est la source que je cherchais depuis 6 mois!!!!  Wahou, super génial. Merci à toi MaxSoldier.

Juste un petit truc, quand on lance le hook sur la souris, on peut toujours cliquer sur la barre des tâches...

Sinon perso 19/20!

Cédric

Commentaire de alvinp le 25/06/2006 08:52:56

Bien joué, félicitation ;)

Sa m'aidera certainement pour la protection d'une session windows :)

Commentaire de tbbuim1 le 05/09/2006 11:11:20

Pas mal, c'est exactement ce que je cherchais :D
Merci pour cette source...
Je tenais également à te dire que je te trouve très séduisante sur cette photo.
Si tu es célibataire, n'hésites-pas à me contacter ;)

Commentaire de MaxSoldier le 06/09/2006 14:57:49

Ah désolé de te décevoir, mais c'est ma petite amie que tu vois là... :p Mais bon, je le prend pour moi ;-)

+++

Commentaire de Bidou le 06/09/2006 22:26:28 administrateur CS

Mammamia... on est pas sur caramail ici, ni sur meetic les gars! ;-)

Commentaire de fellyis le 23/04/2008 12:23:58 8/10

good work !

Commentaire de antho2005 le 07/08/2008 13:12:09

Bonjour tous le monde :)

Bon, je sais, c'est une vieille source, mais j'ai un problème ...
Le Hook Souris fonctionne bien mais dès que je passe sur la barre des tache ça la "unHook" ...
Savez-vous (planter les choux ... ah non c'est pas ça ...) d'où cela peut venir et comment résoudre ce problème ?

Je précise que je suis sous XP avec un style (légèrement :) ) modifié ...

Commentaire de debethune le 07/10/2009 14:17:33

bonjour,
c'est très intéressant !!!
pour ma part, je cherche à brancher 2 souris : l'une pour une utilisation "normale", l'autre pour récupérer les codeurs d'une souris à boule... j'aurai donc besoin de désactiver une seule des 2 souris et surtout récupérer le nombre d'impulsions générée par cette souris pour exploiter les résultats sous VB6 !!!
quelqu'un sait-il m'aider ??
merci d'avance,
Bertrand

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ne pas faire lager souris - hook clavier/souris [ par Children ] Bonjours, j'ai actuellement un hook souris/clavier, le seul problème est que je traite pas mal d'information en même temps, et même en utilisant un th bloquer le clavier et le souris [ par kinggnl ] comment je peut acceder a un poste de mon reseau est bloquer le clavier et le souris dans le VB.net ? Clavier er souris remarque [ par robapt ] Salut ,je voudrait savoir si c'était possible de bloquer que le clavier ou que la souris parce que je n'ai pas trouvé de source sur le site hook souris et clipboard [ par ayarikhaoula ] salut tou le monde . j é 1 problème de détéction du text séléctionné par la souris .jé télécharger un prg de vbfrance qui détécte le text séléctionné texte séléctionné [ par ayarikhaoula ] salut tout le monde . je souhaite trouver un programme qui détecte le texte sélectionné n'importe ou.pour se faire j'ai entendu parler du hook souris. simuler touche clavier / souris !? [ par Claiyah ] bsr tout le mondesvp est ce c'est possible de simuler le click de la souris ou clavier et afficher le résultat dans un msgbox ou text... meme quand l' hook clavier [ par jocou ] Bonjour à tousPetite question aux spécialistes : Lorsqu'on positionne un hook clavier local (donc sur un thread particulier), est-ce que :   - l'appli comment emuler un clavier a l'aide d'une souris!!! [ par oussamad00 ] slut a tous!!!!!!!! genre: deplacer ma souris comme si j'appuyais sur les fleche si vous voyez ce que je veux dire. Hook clavier et plus [ par jbphp ] Bonjour,je demmande votre sur les interaction clavier avec vb2005.netMon but: rediriger une frappe: atl+f4, ctrl+alt+suppr. et touche windows;plus con Hook de la souris sur une fenêtre issue d'un objet COM [ par chris_brabant ] Bonjouren vb.NET, j'utilise l'API SetWindowsHookEx, au travers d'une DLL en C, pour capturer les évènements de type souris sur une fenê


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,733 sec (3)

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