begin process at 2012 02 14 13:50:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Windows

 > 

API

 > 

hook clavier


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

hook clavier

mardi 5 décembre 2006 à 20:44:23 | hook clavier

breton51

bonjour

je voudrais bloquer la touche windows du clavier
pour ce faire je fait un hook sur le clavier en vb6 je n'est pas de pb je fait
SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KeyboardLowLevelProc, App.hInstance, 0&)
et dans la function KeyboardLowLevelProc je test ci la touche est egual a 91(code de la touche windows) ci c'est le cas je renvoi -1

en vb2005 cela ne marche pas du tout voici le code
dans la forme j'ai:

FriendClass Form1
Inherits System.Windows.Forms.Form
Public hHook AsInteger

PrivateSub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) HandlesMyBase.Load
 hHook = SetWindowsHookEx(WH_KEYBOARD_LL,
AddressOf KeyboardLowLevelProc, Me.Handle, vbNull)EndSub

Private Sub Form1_FormClosed( ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me .FormClosed
   UnhookWindowsHookEx(hHook)
End Sub
End
Class


dans le modul j'ai ceci:
Module Module1
DeclareFunction CallNextHookEx Lib"user32" (ByVal hHook AsInteger, ByVal ncode AsInteger, ByVal wParam AsInteger, ByRef lParam AsInteger) AsInteger
DelegateFunction SubClassProcDelegate(ByVal idHook AsInteger, ByVal wParam AsInteger, ByVal lParam AsInteger) AsInteger
PublicDeclareFunction SetWindowsHookEx Lib"user32"Alias"SetWindowsHookExA" (ByVal idHook AsInteger, ByVal lpfn As SubClassProcDelegate, ByVal hmod AsInteger, ByVal dwThreadId AsInteger) AsInteger
DeclareFunction UnhookWindowsHookEx Lib"user32" (ByVal hHook AsInteger) AsInteger
PublicDeclareSub CopyMemory Lib"kernel32"Alias"RtlMoveMemory" (ByRef Destination AsObject, ByRef Source AsObject, ByVal Length AsInteger)
PublicConst WH_KEYBOARD_LL AsShort = 13
PublicConst VK_RWIN AsShort = &H5Bs
PublicConst VK_LWIN AsShort = &H5Cs
PublicStructure HOOKSTRUCT
      Dim vkCode AsInteger
      Dim scanCode AsInteger
      Dim flags AsInteger
      Dim time AsInteger
      Dim dwExtraInfo AsInteger
EndStructure

PublicFunction KeyboardLowLevelProc(ByVal idHook AsInteger, ByVal wParam AsInteger, ByVal lParam AsInteger) AsInteger
Dim code_touche As HOOKSTRUCT ' variable pour récupérer le vk code
'si idhook < 0 alors pas de traitement
If idHook < 0 Then
'      appeler le hook suivant
      
KeyboardLowLevelProc = CallNextHookEx(Form1.hHook, idHook, wParam, lParam)
Else
      'copie la structure de lParam
      CopyMemory(p, lParam, Len(p))
      If code_touche.vkCode = 91 Then' si la touche est préssée windows
            
KeyboardLowLevelProc = -1 ' on fait croire au système que la touche n'a pas été pressée
            ExitFunction' on ne passe pas au hook suivant
      EndIf
EndIf
'appeler le hook suivant
KeyboardLowLevelProc = CallNextHookEx(Form1.hHook, idHook, wParam, lParam)
EndFunction
End
Module


Merci de m'éclérer car la je ne vois pas
mercredi 6 décembre 2006 à 10:00:35 | Re : hook clavier

ShareVB

salut,

http://www.codeguru.com/vb/gen/vb_system/keyboard/article.php/c4831/
http://www.codeproject.com/csharp/globalhook.asp

ShareVB
jeudi 7 août 2008 à 22:24:15 | Re : hook clavier

werdDomain

aussi, une source complete en vb.net d'un hook keybord:

http://pscode.com/vb/scripts/ShowCode.asp?txtCodeId=2971&lngWId=10


pour anulé, dans l'evenement de la source ...
e.handeled = true



Cette discussion est classée dans : touche, hook, hhook, lparam, idhook


Répondre à ce message

Sujets en rapport avec ce message

Hook / Remplacement de touche [ par titoupit ] Bonjour,J'intercepte le flux clavier avec un Hook et je bloque la touche "." du pavé numérique.Mon problème c'est que j'aimerai remplacer cette touche 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 hook souris [ par breton51 ] bonjour,J'ai un petit probleme pour modifier un parram dans un hook souris, je suis sous vb 2005mon code:<p class="MsoNormal" style="MARGIN: TOUCHE CLAVIER - timer [ par GHGFSJD ] Bonjour, J'aimerai un coup de pouce pour la conception d'un programme qui pourrait me donner le temps d'appuie sur une touche. si je presse la touche Touche Clavier [ par GHGFSJD ] Bonsoir, petite question si je peus me permettre.ESt il possible de mapper les toucher clavier pour un autre programme ? vider buffer [ par GHGFSJD ] Bonsoir,Mon programme recois les Bits d'une telecommande infrarouge via le port USB HID et le code touche reste constament en memoire jusqu'a ce que j Attendre la fin de l'éxécution [ par SnapFAB ] Bonsoir à tous,Voici ma question :Peut on empêcher l'appui sur n'importe quel touche tant que mon Sub n'est pas arriver à son terme.En faite l'action Détection touche entrée impossible sur une textbox [ par Genkku ] Bonjour,J'ai un soucis pour détecter la touche entrée avec mon code, j'utilise une textbox et je récupère le code ascii po Press Key !! [ par attaque ] Bonjour a tous,Voila enfaite j'aimerai faire un petit programme, mais je suis bloqué a un endroitLe probleme cest que j'aimerai que le clavier appui t Contrôle de la touche majuscule [ par Reno2 ] Bonjour, <p class="MsoNormal" style="


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

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

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