Détection d'une touche appuyée au démarrage de l'application

Résolu
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 5 nov. 2007 à 18:22
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 - 6 nov. 2007 à 11:47
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

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
5 nov. 2007 à 21:53
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>
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 nov. 2007 à 19:10
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)
0
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009
5 nov. 2007 à 20:40
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
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
6 nov. 2007 à 11:47
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
0
Rejoignez-nous