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 :

Utiliser des raccourcis claviers pour activer des fonctions quand la form est "Hide"


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    BTS
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : BTS
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Utiliser des raccourcis claviers pour activer des fonctions quand la form est "Hide"
    Bonjour à tous,

    Voici mon problème : je n'arrive pas à saisir la fonction qui me permettrait, lorsque ma fenêtre est "Hide" de pouvoir utiliser les raccourcis claviers déjà présent dans le code.

    Pour cacher la form, j'utilise ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
            If Me.WindowState = FormWindowState.Minimized Then
                NotifyIcon1.Visible = True
                Me.Hide()
                NotifyIcon1.BalloonTipTitle = "Titre"
                NotifyIcon1.BalloonTipText = "Texte"
                NotifyIcon1.ShowBalloonTip(500)
            End If
        End Sub
    Pour qu'il réaparaisse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick
            Me.Show()
            Me.WindowState = FormWindowState.Normal
            NotifyIcon1.Visible = False
     
        End Sub
    Mon raccourci clavier est programmé comme ci après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form1_KeyDown2(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
            If e.KeyData = (Keys.Control Or Keys.NumPad1) Then
                Activation_ecran_plein()
                e.SuppressKeyPress = True
            End If
        End Sub
    J'ai regardé sur google, j'ai pas trouvé mon bonheur, je me tourne donc vers des experts (oui, experts , moi débutant ) pour résoudre ce problème...

    Merci d'avance de vos réponses !

    Quentin

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir quentinclone,

    Observes bien le contenu de la signature de cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Form1_KeyDown2(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
            If e.KeyData = (Keys.Control Or Keys.NumPad1) Then
                Activation_ecran_plein()
                e.SuppressKeyPress = True
            End If
        End Sub
    le "KeyEventArg" appartient à ton "Form1" : ce qui veut dire que tu ne pourras jamais entrer dans cette méthode dès lors que tu ne presses pas une touche de clavier dans ton "Form1" (donc quand ton form1 est visible !).

    Il faut que tu utilises une librairie : HookKeyboard :
    http://www.codeproject.com/Articles/...rd-Hooks-in-C#

    Cette librairie attendra qu'une quelconque touche du clavier soit pressée à n'importe quel moment et ça aura pour but de déclencher un évènement. Donc tu pourras à ce moment là entrer dans ta sub().


    A+

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Pour utiliser les raccourcis clavier, on doit donner le focus à la Form, ce qui est contradictoire avec une form "hidden".

    Une possibilité consiste à remplace les Form.Hide par une modification de Form.Location pour mettre la forme hors de l'écran, simulant l'invisibilité mais gardant le Focus.

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Une possibilité consiste à remplace les Form.Hide par une modification de Form.Location pour mettre la forme hors de l'écran, simulant l'invisibilité mais gardant le Focus.
    Dasn ce cas il faut bien qu'il prenne en compte que l'utilisateur peut tout aussi bien avoir un bureau étendu donc il faudra qu'il le détecte avant de vouloir placer son formulaire en dehors de la "Zone visible".

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    le lien a l'air d'être une dll, donc je précise au cas où, le hook est une fonction de windows qui permet d'intercepter les frappes au clavier dans tout l'environnement windows donc même sans avoir de fenêtre
    il suffit pour cela d'importer la fonction de windows (attribut dllimport) et google connait le code nécessaire

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2010, 19h27
  2. Créer des raccourcis claviers pour les events.
    Par christophertux dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 10/08/2009, 16h10
  3. Réponses: 0
    Dernier message: 28/08/2008, 21h34
  4. Créer des raccourcis clavier pour un menu général
    Par quent157 dans le forum Modélisation
    Réponses: 1
    Dernier message: 31/05/2007, 19h18
  5. utilisation des raccourcis claviers pour debugger.
    Par Mobistar dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 30/05/2007, 15h39

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