Accueil > > > 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
Description
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
Historique
- 15 juin 2005 19:49:00 :
- Ajout des commentaires !
Sources du même auteur
Sources de la même categorie
Commentaires et avis
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ê
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|