begin process at 2012 02 13 22:29:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Hook / Remplacement de touche


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

Hook / Remplacement de touche

vendredi 26 août 2005 à 16:40:40 | Hook / Remplacement de touche

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 par un "," ... mais lorsque je fait un sendkey ou keybd_event, mon hook intercepte le "," et me le recrache aprés celui que j'envoi "à la main" => Résultat je me retrouve avec ",,"

J'ai tout essayé mais j'y arrive tout simplement paaaaaaaaaassssss =>

****************************************************************

Public Function IsHooked(ByRef Hookstruct As KBDLLHOOKSTRUCT) As Integer
    If (Hookstruct.vkCode = VK_DECIMAL) Then
        Return Hookstruct.vkCode
    End If
    Return 0
End Function

****************************************************************

Public Function KeyboardCallback(ByVal Code As Integer, _
  ByVal wParam As Integer, _
  ByRef lParam As KBDLLHOOKSTRUCT) As Integer

    If (Code = HC_ACTION) Then
        If IsHooked(lParam) <> 0 Then
            Return 1
        End If
    End If

    Return CallNextHookEx(KeyboardHandle, Code, wParam, lParam)
End Function

****************************************************************

Public Delegate Function KeyboardHookDelegate( _
  ByVal Code As Integer, _
  ByVal wParam As Integer, _
  ByRef lParam As KBDLLHOOKSTRUCT) As Integer

****************************************************************

<MarshalAs(UnmanagedType.FunctionPtr)> Private callback As KeyboardHookDelegate

****************************************************************
'Je lance donc la fonction qui suis =>

Public Sub HookKeyboard()
    callback = New KeyboardHookDelegate(AddressOf KeyboardCallback)

    KeyboardHandle = SetWindowsHookEx( _
      WH_KEYBOARD_LL, callback, _
      Marshal.GetHINSTANCE( _
      [Assembly].GetExecutingAssembly.GetModules()(0)).ToInt32, 0)
End Sub

****************************************************************

Quelqu'un aurai t'il une idée du "comment faire" ?

Merci!

samedi 27 août 2005 à 15:21:12 | Re : Hook / Remplacement de touche

ShareVB

salut,

je pense que tu remplaces simplement le code "." par "," dans vkCode et tu le passes à CallNextHookEx...

ShareVB
lundi 29 août 2005 à 09:55:54 | Re : Hook / Remplacement de touche

titoupit

Déja tenté, mais ca marche pas
mardi 30 août 2005 à 09:59:53 | Re : Hook / Remplacement de touche

ShareVB

salut,

il faut aussi renvoyer 0 depuis la callback...

ShareVB
mardi 30 août 2005 à 13:54:47 | Re : Hook / Remplacement de touche

titoupit

Bon j'ai pas mal galéré, mais j'ai finalement trouvé ça (c'est pas trés propre, mais au moins ça marche ^^):

Public Function KeyboardCallback(ByVal Code As Integer, _

ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer

If (Code = HC_ACTION) Then

'Remplacement de touche "." par ","

If lParam.vkCode = VK_DECIMAL And LastReplaced_DECIMAL = "" Then

LastReplaced_DECIMAL = ","

Return 1

End If

If lParam.vkCode = VK_DECIMAL And LastReplaced_DECIMAL = "," Then

System.Windows.Forms.SendKeys.Send(",")

LastReplaced_DECIMAL = ""

Return 1

End If

Return CallNextHookEx(KeyboardHandle, Code, wParam, lParam)

End Function

mardi 30 août 2005 à 14:33:32 | Re : Hook / Remplacement de touche

ShareVB

salut,

et en remplaçant le vkCode et en renvoyant RETURN 0...ca ne marche pas ?

ShareVB
mercredi 31 août 2005 à 10:38:12 | Re : Hook / Remplacement de touche

titoupit

Non, il me renvoie la touche initiale (comme si je ne changeais rien en fait!).

Attention, dans le code que j'ai passé il faut faire gaffe à l'état du caps lock (sinon on a un joli "?" qui sort  qd on est en MAJ)


Cette discussion est classée dans : function, end, touche, integer, hook


Répondre à ce message

Sujets en rapport avec ce message

Probleme de dll [ par mastercatz ] Voila mon probleme, je voulais faire une petite dll en vb pour quelques fonctions mais j'ai un probleme. Quand j'appelle ma fonction de la dll j'ai un Impression d'un panneau en .Net [ par dragon ] Salutj'ai présentement un code qui permet d'imprimer les composant d'une forme en .Net. Ça marche plutot bien, je l'ai prit sur le site.-------------- conversion en .NET [ par Safireo ] slut tlm !je cherche à terminer la conversion de ce code en .net.j'arrive à éliminer les erreurs mais pas à faire fonctionner le logiciel qui doit me Net Send, Aide [ par Maglore ] bonour, j'ai presque fini mon prog, reste 1 chose, le statusje suis pas capable de le faire fonctionner, mais j'ai quand meme préparé les variables (d traduire une dll delphi5 en vb6 [ par hcadieu ] Bonjour,j'ai développé un algorithme en delphi 5 et j'ai besoin de le traduire en VB6, quelqu'un ici bas maitrise t-il ces deux languages pour m'aider [VB2008] Afficher ce que j'écoute dans MSN [ par Vince300 ] Bonjour Voilà, j'essaye de faire afficher "Ce que j'écoute" dans msn messenger (juste en dessous du message perso). J'utilise ce code : [code=vb] Imp Word hook souris [ par sylvain230 ] SalutJ'ai un problème assez "fun".J'ai fait un hook de souris sur la fenêtre word. ca me donne ca         Public Function Hook(ByVal W As Microsoft.Of le nom 'SimInitialize' n'est pas déclaré [ par mr100kv ] Bonjour, Mon socle de dvlpt : vb.net & Compact Framwork 2.0 je désire récupérer le n°IMSI d'une carte SIM afin d'appliquer les paramètres du FAI corr Créer une dll qui génèrerait un fichier LOG [ par Flocreate ] Bonjour, Me revoici avec un nouveau problème. Je me lance dans la création de DLL (pas ActivX) J'ai modifié mon LINK.exe en suivant les instructions Affichage de l'heure à la milliseconde [ par stick25 ] Bonjour, je souhaite simplement afficher l'heure de mon ordinateur à la milliseconde près. J'ai récupérer le code suivant sur internet (en espérant


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 : 2,777 sec (3)

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