IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Détecter une saisie au clavier sans focus


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Détecter une saisie au clavier sans focus
    Voilà, je suis débutant en vb.net, et je voudrais faire une petite application qui indique par un icône dans le systray si le Caps Lock est actif ou pas.
    Je tient à dire que j'ai fait des heures de recherche avant de poster ici, mais je n'ai pas trouvé de solution.

    Je n'arrive pas à trouver l'évènement qui lors de l'appui sur caps lock déclencherais mon petit bout de code. J'ai bien vu keypress et keydown, mais ils ne réagissent pas comme je voudrais, car ils ont besoin du focus. Par conséquent, mon code s'exécute bien, mais dès que le focus est perdu : plus rien.

    Ai-je choisi les bons évènements? Dois-je trouver le moyen de réactiver le focus, ou trouver une méthode sans focus?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If My.Computer.Keyboard.CapsLock Then
        MsgBox("CAPS LOCK on")
    Else
        MsgBox("CAPS LOCK off")
    End If

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci de ta réponse, mais je crois que tu as mal compris mon problème. Voilà un petit bout de ce que j'ai fait pour le moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        Private Sub Configuration(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
            Dim Statut As String
            Dim Icone As String
            If My.Computer.Keyboard.CapsLock Then
                Icone = "lock.ico"
                Statut = "actif"
                If ActiverLesSonsToolStripMenuItem.Checked Then
                    My.Computer.Audio.Play("information.wav")
                End If
            Else
                Icone = "unlock.ico"
                Statut = "inactif"
            End If
            If ActiverToolStripMenuItem.Checked Then
                NotifyIcon.ShowBalloonTip(CInt("100"), "Caps Lock", "Caps Lock " + Statut, ToolTipIcon.Info)
            End If
            NotifyIcon.Icon = New System.Drawing.Icon(Icone)
        End Sub
    Le problème c'est que ça ne se déclenche que quand le focus est sur mon formulaire.

  4. #4
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Dans ce cas, il faut creer un service à la place.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Un service windows?
    Oui, pourquoi pas, mais est-ce faisable en VB.net? Et si oui, comment? Aurait tu des tutoriels ou de la documentation à ce sujet?

  6. #6
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Oui, pourquoi pas, mais est-ce faisable en VB.net?
    Oui cela est faisable

    Aurait tu des tutoriels ou de la documentation à ce sujet?
    http://www.codeguru.com/vb/gen/vb_sy...e-in-VBNET.htm

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer une touche clavier sans focus sur fenetre
    Par linked dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 21/04/2009, 20h33
  2. Réponses: 2
    Dernier message: 01/11/2007, 10h23
  3. Comment abandonner une saisie au clavier ?
    Par Invité dans le forum Ada
    Réponses: 5
    Dernier message: 27/01/2007, 08h55
  4. Créer une saisie de texte sans formulaire
    Par Matgic95 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/01/2007, 12h20
  5. [Turbo Pascal] Lire une touche au clavier sans interrompre le programme
    Par Allelouia dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 29/03/2003, 22h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo