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

Windows Forms Discussion :

[VB.NET] Bloquer touches Windows


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut [VB.NET] Bloquer touches Windows
    Bonjour,
    j'ai reussi a cacher la barre des taches de Windows pour que l'utilisateur ne puisse rien faire d'autre que d'utiliser mon application, mais lorsque j'appuis sur les touches Windows droite ou gauche, le menu "Demarrer" apparait quand meme.
    Y-a-t-il un moyen pour desactiver ces 2 touches ?
    J'ai ça mais je ne sais pas comment empecher leurs actions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If e.KeyCode = Keys.LWin Or e.KeyCode = Keys.RWin Then
         '???Que faire
    End If
    merci

  2. #2
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If e.KeyCode = Keys.LWin Or e.KeyCode = Keys.RWin Then
         e.Handled = True
    End If

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    non désolé mais ca ne bloque rien du tout

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    OK essaye ceci.

    Le code que tu as posté est dans l'evenement KeyDown (je suppose) change le ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If e.KeyCode = Keys.LWin Or e.KeyCode = Keys.RWin Then
         NePasTraiter = True 'NepasTraiter est un booleen que tu auras déclaré au niveau de ta classe
    else
        NePasTraiter  = false
    End If
    Dans l'evenement KeyPress fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if NePasTraiter then
        e.Handled = True
    endif

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Ca ne fait rien.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Sub PagePrincipale_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
            If e.KeyCode = Keys.LWin Or e.KeyCode = Keys.RWin Then
                NePasTraiter = True
            Else
                NePasTraiter = False
            End If
        End Sub
     
    Private Sub PagePrincipale_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
            If NePasTraiter Then
                e.Handled = True
            End If
        End Sub
    Ca ne bloque pas l'apparition du menu quand j'appuie sur les touches Windows gauche ou droite...est ce que LWin et RWin sont les bonnes touches à tester ?

  6. #6
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par seemax
    est ce que LWin et RWin sont les bonnes touches à tester ?
    Bonne remarque. Moi je n'ai pas ces touches et je me sers de la combinaison Ctrl+Esc pour faire apparaitre le menu Demarrer. Essaye de tester la combinaison Ctrl+Esc

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Ouais mais moi c'est les 2 touches windows qu'on m'a demander de bloquer donc j'ai pas trop le choix...mais il va donc falloir que je bloque aussi Ctrl+Esc...

  8. #8
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Je le disais car peut être que les touches windows ne font que simuler Ctrl+Esc. Tu ne perds rien à tester

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Je pense que ton problème vient du fait que les deux touches en question sont des touches "système", et que tu ne peux pas annuler de cette manière leur comportement par défaut (comme pour TAB, etc).

    Une solution que j'utilise pour bloquer TAB, est de faire hériter le fomulaire de l'interface IMessageFilter, en plus de Form. Ensuite dans le constructeur de la fenêtre, mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.AddMessageFilter(this);
    Puis tu implémentes la fonction PreFilterMessage avec quelque chose ressemblant à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public bool PreFilterMessage(ref Message m)
    {
      if (m.Msg == 0x100) // KeyDown
      {
        Keys key = (Keys)(int)m.WParam & Keys.KeyCode;
     
        if(key == Keys.TA_TOUCHE)
          return true;
      }
     
      return false;
    }
    Allez bonne chance

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Essaye de tester la combinaison Ctrl+Esc
    Pourrait tu me dire comment tu fais en VB Net pour bloquer cette combinaison de touche stp ?

  11. #11
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par seemax
    Essaye de tester la combinaison Ctrl+Esc
    Pourrait tu me dire comment tu fais en VB Net pour bloquer cette combinaison de touche stp ?


    Je l'ai jamais fais, mais la piste de smikar me semble bonne

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    j'ai trouvé une dll qui impémentait les fonctions que je desirais
    merci les gars

  13. #13
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    On peut savoir de quelle dll il s'agit ? C'est bien d'avoir résolu ton problème mais ça pourrait servir à d'autres.

    Griftou.
    Kropernic

  14. #14
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut
    Et sinon, dans le keypress, si tu as e.handled = true, remplace le par e.cancel

    Je ne suis pas sur de ce que je dis. Je fais ça de tête.
    Petit poulain devient grand de jour en jour...

    Petit Poulain, ce n'est que pour les intimes!

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/05/2014, 19h02
  2. Comment bloquer touche Windows!
    Par MarKo04 dans le forum Delphi
    Réponses: 22
    Dernier message: 29/08/2006, 12h46
  3. comment désactiver la touche windows ?
    Par mAdY dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 13/04/2005, 10h24
  4. Hook + touche <Windows>
    Par MadChris dans le forum MFC
    Réponses: 9
    Dernier message: 21/10/2004, 11h14
  5. Désactiver la touche Windows
    Par rolkA dans le forum Windows XP
    Réponses: 2
    Dernier message: 15/10/2004, 20h59

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