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 :

Action touche majuscule


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Action touche majuscule
    Bonjour a tous,

    J'aimerais bien quand l'utilisateur appuie sur la touche verr.maj qu'il y a une msgbox disant que l'utilisateur n'a pas le droit d'utiliser les majuscules et désactiver la touche verr.maj

    si quelqu'un me dit la solution je serais très reconnaissant

    merci d'avance

  2. #2
    Membre expert
    Bonjour JS7777,

    En utilisant un HookKeyBoard :

    http://geekswithblogs.net/aghausman/...win-app-c.aspx


    A+

  3. #3
    Nouveau Candidat au Club
    Déjà merci pour ta réponse sauf que le code est en C#, il y a t-il en VB ?

    J'ai essayer le code en C#, ca ne marche pas

  4. #4
    Membre expert
    Salut js7777,

    Alors c'etait en c# et ca ne te convenait pas ....et finalement en c# ca ne fonctionne pas....??

    L'as-tu simplement adapté a tes besoins ? Car si tu lis bien les commentaires de l auteur il s' agit d'interdire l'utilisation des touches windows !!

    Ici on ne poste pas des snippets a la demande mais on essaye juste de vous mettre sur la voie afin que votre matière grise fasse le reste.

    PS : si tu googlise le terme : hookkeyboard C# il y a de forte chance de trouver ton bonheur. Des librairies deja existantes.

    Cdlt

    A+

  5. #5
    Nouveau Candidat au Club
    Le code ne marche pas, j'ai même télécharger le projet, mais ca ne marche pas, quand je met une textbox et je tape dedans on peut toujours mettre des majuscules.
    Je ne connais pas le code C# donc je peut pas modifier si je connais pas.
    J'ai chercher Hookkeyboard en vb mais rien trouvé

  6. #6
    Membre émérite
    Qu'essayes-tu de faire ? Sois précis si tu souhaites avoir des réponses.
    Quel type de projet ? Winform, WPF, ASP NET, autre

    Dans le cas de WinForm et WPF il suffit de définir la propriété CharacterCasing à Lower. Ainsi tu ne pourras saisir que des minuscules.

  7. #7
    Membre expert
    Citation Envoyé par JS7777 Voir le message
    Le code ne marche pas, j'ai même télécharger le projet, mais ca ne marche pas, quand je met une textbox et je tape dedans on peut toujours mettre des majuscules.
    Je ne connais pas le code C# donc je peut pas modifier si je connais pas.
    J'ai chercher Hookkeyboard en vb mais rien trouvé
    Que ne comprends-tu pas dans : adapter le projet à tes besoins ??
    Tu peux très bien ne pas connaitre le C# mais pour qqun qui souhaite faire du développement en DotNet, tu aurais au moins pu jeter un oeil sur les spécificités du langage IL nan ???

    .........brefffff.....encore qqun qui fonce tête baissé en voulant griller les étapes.....

    Voilà des convertisseurs de code C#<--->VbNet :
    http://converter.telerik.com/
    http://www.developerfusion.com/tools.../csharp-to-vb/


    Bonne continuation....

  8. #8
    Nouveau Candidat au Club
    Merci pour ton message meziantou et wallace

    meziantou:
    Ce n'est pas pour la textbox c'est pour tout, c'est une appli Win form

    J'aimerais bien quand l'utilisateur appuie sur la touche verr.maj qu'il y a une msgbox disant que l'utilisateur n'a pas le droit d'utiliser les majuscules et désactiver la touche verr.maj

  9. #9
    Membre émérite
    Si tu veux afficher un message lorsque l'utilisateur appuie sur la touche CapsLock, il suffit d'overrider la méthode ProcessCmdKey de Form

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Class Form1
        Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
            If keyData = Keys.CapsLock Then
                MessageBox.Show("CapsLock")
            End If
     
            Return MyBase.ProcessCmdKey(msg, keyData)
        End Function
     
    End Class


    Par contre je ne recommande pas de bloquer l'état de cette touche car son état est global à Windows. Il vaut mieux gérer cela au moment où l'utilisateur presse une touche dans ton application (notamment en utilisant ce que je t'ai indiqué précédemment)

  10. #10
    Nouveau Candidat au Club
    Merci mezientou pour le code

    donc on peut pas désactiver cette touche pour toute l'application ?

    j'ai essayer ceci mais je sais pas ce qui manque, j'ai essayer e.handle = true mais rien

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
     
            If e.KeyCode = Keys.CapsLock Then
     
     'Ici je sais pas quoi mettre
     
    MsgBox("Vous n'avez pas le droit d'utilser la majuscule")
     
            End If

  11. #11
    Membre émérite
    Tu ne peux pas désactiver la touche uniquement pour l'application mais pour toutes les applications.

    Si tu tiens à désactiver CapLock :

    En c#:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
            [DllImport("user32.dll")]
            static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                if (Control.IsKeyLocked(Keys.CapsLock))
                {
                    const int KEYEVENTF_EXTENDEDKEY = 0x1;
                    const int KEYEVENTF_KEYUP = 0x2;
                    keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
                    keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
                }

  12. #12
    Nouveau Candidat au Club
    A quel emplacement dois-je mettre le code ?

  13. #13
    Membre émérite
    A l'endroit où tu veux mettre CapLock à Off

  14. #14
    Nouveau Candidat au Club
    je voulais dire ou mettre [DllImport("user32.dll")] car quand je met il y a des erreurs

  15. #15
    Membre émérite
    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
    Public Class Form1
        Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
            If keyData = Keys.CapsLock Then
                MessageBox.Show("CapsLock")
            End If
     
            Return MyBase.ProcessCmdKey(msg, keyData)
        End Function
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            If Control.IsKeyLocked(Keys.CapsLock) Then
                Const KEYEVENTF_EXTENDEDKEY As Integer = &H1
                Const KEYEVENTF_KEYUP As Integer = &H2
                keybd_event(&H14, &H45, KEYEVENTF_EXTENDEDKEY, UIntPtr.Zero)
                keybd_event(&H14, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, UIntPtr.Zero)
            End If
     
        End Sub
     
     
        <DllImport("user32.dll")> _
        Private Shared Sub keybd_event(bVk As Byte, bScan As Byte, dwFlags As UInteger, dwExtraInfo As UIntPtr)
        End Sub
    End Class

  16. #16
    Nouveau Candidat au Club
    Quand maj est activé et on appuie sur le bouton ca désactive, ce qui parait normal

    mais si on reappuie sur maj ça active