Détection d'une touche appuyée au démarrage de l'application [Résolu]

Signaler
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
-
JM247L
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
-
Bonjour à tous,

je cherche une façon de détecter en VB.net 2005 si l'aplication a été démarré avec une touche enfoncé

genre Shift + Enter, au lieu de juste Enter

Sinon ça serait de détecter si une touche est enfoncé en pleins milieu de mon code

Je veux ajouter une fonction qui me permettrait de démarrer mon application normallement, mais si une touche est enfoncé, il ouvre une fenêtre de débogage.

J'aimerais le moins possible avoir 2 EXE différents, je préfèrais qu'une touche les sépares et si la bonne touche est enfoncé, qu'une fenêtre de mot de pass apparait.

Donc il faut soit détecter si une touche est enfoncé à l'ouverture de l'application  ou si rendu à ma validation s'il y a une touche appuyéé J'aimerais le moins possible avec un keypress ou un keyDown

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------

4 réponses

Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
4
voici la solution

Public Class Main
    Inherits System.Windows.Forms.Form
    Implements IMessageFilter

    Const WM_KEYDOWN As Integer = &H100
    Public Sub New()
        Application.AddMessageFilter(Me)
        Application.DoEvents()
        Try
            Dim temp As New Form1(True)
            temp.Owner = Me
            Application.Run(temp)
            Try
                temp.NotifyIcon1.Visible = False
            Catch
            End Try
        Catch ex As Exception
            Dim temp As New frmErreur
            temp.Erreur = ex
            temp.ShowDialog()
        End Try
        End
    End Sub

    Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) As Boolean Implements System.Windows.Forms.IMessageFilter.PreF<wbr>ilterMessa<wbr>ge
        Select Case m.Msg
            Case WM_KEYDOWN
                Dim keyCode As Keys = m.WParam
                If keyCode = Keys.F12 Then
                    VerifActivation.securityBypass = True
                End If
        End Select
    End Function
End Class

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------

</wbr></wbr>
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
64
Salut
Comme expliqué dans l'aide de.Net, il te suffit d'utiliser ceci au moment où tu veux l'info, au démarrage de ton appli ou plus tard :
   If My.Computer.Keyboard.ShiftKeyDown Then MsgBox("SHFT key down")

Pour tes histoires de double EXE, je n'ai rien compris

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
60
Date d'inscription
mercredi 9 novembre 2005
Statut
Membre
Dernière intervention
6 janvier 2009

Salut Dragon,

Tu peut utiliser un parametre quand tu ouverture de ton application, et tu la recupere avec Command dans les premiere ligne de ton code.  Moi j'utilise cette methode pour donner acces au menu configuration, cela evite les changements de configuration saccidentelle de la part des usagers. exemple   C:\Mon Programme /Config

Bye

TiBlay
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Bonjour,
Je passais par là et je me suis dit que quelqu'un aurait peut être la même chose sous VBA ... Le but étant de controler que la touche Shift n'est pas enfoncée au moment de l'ouverture d'un classeur Excel contenant du code
Merci d'avance
Cliquer "Réponse Acceptée" Quand C'est La Solution

Partageons Notre Savoir & Nos Acquis - JML