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 :

Bloquer les touches VolumeUP, VolumeDown, VolumeMute


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 63
    Points
    63
    Par défaut Bloquer les touches VolumeUP, VolumeDown, VolumeMute
    Bonjour,

    J'aimerais savoir s'il existe un moyen en .net d'empêcher que le système prennent en compte les touches VolumeUP, VolumeDown et VolumeMute après avoir été consommé par mon programme.

    J'ai déjà essayé le e.Handled et le e.SuppressKeyPress , de surcharger ProcessCmdKey et WndProc. Toutes ces solutions empêchent bien de propager les évènement clavier vers les contrôles enfant, mais n'empêchent pas la propagation vers le système.

    Actuellement, j'utilise un hook clavier qui marchotte ( surtout avec W7 x64), mais depuis que je l'utilise, la libvlc plante .

    Merci,

    Hervé.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 63
    Points
    63
    Par défaut
    J'utile RegisterHotkey et UnregisterHotkey, ça a l'air de fonctionner correctement.
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
       <DllImport("user32.dll")>
        Public Shared Function RegisterHotKey(ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifier As Integer, ByVal vlc As Integer) As Boolean
        End Function
        <DllImport("user32.dll")>
        Public Shared Function UnregisterHotKey(ByVal hWnd As IntPtr, ByVal id As Integer) As Boolean
        End Function
     
        'Public Const ALT As Integer = 1
        'Public Const CTRL As Integer = 2
        'Public Const SHIFT As Integer = 4
        'Public Const WIN As Integer = 8
        Public Const HK_MSG_ID As Integer = &H312
     
        Public Sub initHotKey()
            RegisterHotKey(Me.Handle, 100, 0, Keys.VolumeDown)
            RegisterHotKey(Me.Handle, 200, 0, Keys.VolumeUp)
            RegisterHotKey(Me.Handle, 300, 0, Keys.VolumeMute)
        End Sub
     
        Public Sub releaseHotkey()
            UnregisterHotKey(Me.Handle, 100)
            UnregisterHotKey(Me.Handle, 200)
            UnregisterHotKey(Me.Handle, 300)
     
        End Sub
        Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
            initHotKey()
        End Sub
     
        Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate
            releaseHotkey()
        End Sub
     
        Private Sub Mainform_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            releaseHotkey()
    End Sub
     
        Private Sub Mainform_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            initHotKey()
    End Sub
     
     
        Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
            If m.Msg = HK_MSG_ID Then
                Dim id As IntPtr = m.WParam
                Select Case (id.ToString)
                    Case "100"
                         ' code pour VolUmeDown
                    Case "200"
                         ' code pour VolUmeUp
                    Case "300"
                        ' code pour VolUmeMute
                End Select
            End If
            MyBase.WndProc(m)
        End Sub

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

Discussions similaires

  1. bloquer les touches du clavier
    Par darrylsite dans le forum VC++ .NET
    Réponses: 9
    Dernier message: 24/06/2008, 21h55
  2. Bloquer les touches du clavier
    Par Heilong dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2007, 10h20
  3. Bloquer les Touches Ctrl+Alt+Suppr
    Par allan02390 dans le forum C++
    Réponses: 4
    Dernier message: 24/10/2007, 11h55
  4. Réponses: 8
    Dernier message: 20/08/2007, 16h37
  5. Réponses: 1
    Dernier message: 22/09/2005, 20h46

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