begin process at 2012 02 17 10:33:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Windows

 > 

Autre

 > 

"Keys Hooking" avec conversion


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

"Keys Hooking" avec conversion

vendredi 26 décembre 2008 à 14:28:38 | "Keys Hooking" avec conversion

Nowid50

Bonjour,

Dans le cadre d'une petite application, j'ai a réaliser un petit Key Hooker.

Le principe est simple, c'est de "convertir" les entrées suivantes :

Numpad2 -> Bas
Numpad3 -> Page Down
Numpad4 -> Gauche
Numpad5 -> Espace
Numpad6 -> Droite
Numpad8 -> Haut
Numpad9 -> Page Up

J'ai déja écrit le code suivant :

Public Class Form1

    'Keys
    Dim DownKey As Boolean = False
    Dim UpKey As Boolean = False
    Dim LeftKey As Boolean = False
    Dim RightKey As Boolean = False
    Dim PgUp As Boolean = False
    Dim PgDwn As Boolean = False

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Bck.RunWorkerAsync()
        Button1.Enabled = False
        Button2.Enabled = True
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Bck.CancelAsync()
        Button1.Enabled = True
        Button2.Enabled = False
    End Sub

    Private Sub Bck_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles Bck.DoWork
        Do
            If Bck.CancellationPending Then
                Exit Do
            End If

            Application.DoEvents()

            If DownKey Then SendKeys.SendWait(Keys.Down)
            If LeftKey Then SendKeys.SendWait(Keys.Left)
            If UpKey Then SendKeys.SendWait(Keys.Up)
            If RightKey Then SendKeys.SendWait(Keys.Right)

            If PgDwn Then SendKeys.SendWait(Keys.PageDown)
            If PgUp Then SendKeys.SendWait(Keys.PageUp)

        Loop
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
        DownKey = keyData = Keys.NumPad2
        UpKey = keyData = Keys.NumPad8
        LeftKey = keyData = Keys.NumPad4
        RightKey = keyData = Keys.NumPad6
        PgDwn = keyData = Keys.PageDown
        PgUp = keyData = Keys.PageUp
    End Function
End Class

Cela fonctionne dans le programme mais pas de façon globale, car le principe est de renvoyer ces touches dans un autre programme.

Merci d'avance pour vos idées :)
vendredi 26 décembre 2008 à 15:22:46 | Re : "Keys Hooking" avec conversion

jack

Administrateur CodeS-SourceS
Salut
Et quelle est ta question ?
"mais pas de façon globale" : moi, ça ne me dit rien.
vendredi 26 décembre 2008 à 16:38:55 | Re : "Keys Hooking" avec conversion

Nowid50

Pardon pour ce manque de précision, "globale" signifie que je voudrais que cela soit une tache de fond. Car le code que j'indique fonctionne mais uniquement si la fenetre a le focus sinon le code ne fonctionne pas.

Je pense que SendKeys.SendWait fonctionne indépendement du focus non ?
samedi 27 décembre 2008 à 13:09:55 | Re : "Keys Hooking" avec conversion

jack

Administrateur CodeS-SourceS
Re
Et non, SendKeys enverra l'ordre à la fenêtre qui a actuellement le focus.
La question est "Est-ce que ton programme Bck continue à capturer les touches lorsqu'il n'a plus le focus ?"
Je ne connais pas assez .Net pour te répondre, désolé.
Je ne sais pas ce que ces commandes provoquent :
        Bck.RunWorkerAsync()
        Bck.CancelAsync()

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)


Cette discussion est classée dans : system, false, keys, if, byval


Répondre à ce message

Sujets en rapport avec ce message

Client server Vb .net [ par Hamz01 ] slt tout le monde, je viens de devellopper une interface qui permets de comuniquer avec un pc distant via le reseau. En effet, au niveau de l'interfa Problème de boucle [ par thevbrocker ] Voici mon problème, j'ai conçu un petit programme qui me permet de transférer mes fichiers de mon ordinateur vers un disque dur externe. Exemple: Le Lister toutes les cles d'une section d'un Fichier Ini [vb2008] [ par matheonimbus30 ] Bonjour, J'ai trouvé ce code pour lire les cles d'une section d'un fichier ini sur codyx : [code=vb] Friend Function GetPrivateProfileSection(ByVal l Visionneuse d'images-Précédent/Suivant [ par Miniblock ] Salut ! Venant de me remettre au vb, j'ai eu l'idée de faire une visionneuse d'images. Celle çi se compose d'un bouton Zoom (BTZ) qui passe entre "Ima veillez me couriger ce code ,d'un equation de 2m degre [ par badbadtoo ] Public Class Form1 Dim a As Double Dim b As Double Dim c As Double Dim d As Double Dim x1 As Double Dim x2 As Double Dim s vb.net paramètre sauvegarde de valeurs [ par question911 ] Bonjour, À l'ouverture de mon petit programme il demande un numéro de série qui est 333. Dès que la personne à tapé se numéro de série une page s'ouvr Urgent problème de variables dans mon programme [ par arween76 ] Bonsoir, Je débute en VB.Net. J'ai créé un programme de création de répertoire. Il fonctionne bien ... sauf que si je crée un répertoire puis que je Problème de mise à jour du Label/ProgressBar avec un Threading.Timer ! [ par fabiano13 ] Bonjour, Impossible de mettre à jour le label en même temps que le progressbar. Il me faut absolument ce Threading.Timer. Avez-vous une idée ? D'a Comment stopper un System.Threading.Timer ? [ par fabiano13 ] Bonjour, Comment stopper un System.Threading.Timer ? D'avance merci, Fabiano [code=vb] Public Sub ChangeTexts(ByVal length As Long, ByVal position Probleme de Paint sur un DataGridViewColumnHeaderCell [ par foliv57 ] Bonjour à tous, Je suis face à un problème qui me rend un peut fou. Je me suis fait une classe "DataGridViewCustomColumnHeaderCell" qui hérite de "D


Nos sponsors


Sondage...

Comparez les prix

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,421 sec (4)

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