Utiliser Keycode pour un Timer

Fermé
hugoof Messages postés 7 Date d'inscription dimanche 27 septembre 2015 Statut Membre Dernière intervention 30 septembre 2015 - 28 sept. 2015 à 18:45
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 29 sept. 2015 à 03:43
Bonjour,

Je voudrais que quand j'appuie sur la touche F1, il y ait un mot qui s'écrive.
J'ai essayé mais le KeyCode ne marche pas.
Mon code :
Imports System.Runtime.InteropServices

Public Class Form1

<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function RegisterHotKey(ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As UInteger, ByVal vk As UInteger) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
If (GetAsyncKeyState(118)) Then

End If
SendKeys.Send(":planter x")
SendKeys.Send("{Enter}")
SendKeys.Send(":planter x")
SendKeys.Send("{Enter}")
Timer1.Stop()
End Sub

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Timer1.Start()
'keycode a = 118
End Sub

Private Function GetAsyncKeyState(p1 As Integer) As Boolean
Throw New NotImplementedException
End Function

End Class


Merci à vous.
Cordialement,

3 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
28 sept. 2015 à 20:30
Bonjour

Il te suffit de te servir de l'événement KeyDown de ta form.

    Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.F1 Then
            'ici ce que tu veux faire
        End If
    End Sub

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
28 sept. 2015 à 20:31
et pas besoin de tout le code que tu as montré, tu peux tout supprimer
0
hugoof Messages postés 7 Date d'inscription dimanche 27 septembre 2015 Statut Membre Dernière intervention 30 septembre 2015
28 sept. 2015 à 20:33
Merci bien j'essaie ça :p
0
hugoof Messages postés 7 Date d'inscription dimanche 27 septembre 2015 Statut Membre Dernière intervention 30 septembre 2015
Modifié par hugoof le 28/09/2015 à 20:36
Donc ça ferait
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.F1 Then
Timer1.Start()
End If
End Sub
0
hugoof Messages postés 7 Date d'inscription dimanche 27 septembre 2015 Statut Membre Dernière intervention 30 septembre 2015
28 sept. 2015 à 20:36
Voici mon code, ça ne marche pas :/

Imports System.Runtime.InteropServices

Public Class Form1

<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function RegisterHotKey(ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As UInteger, ByVal vk As UInteger) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
SendKeys.Send(":planter x")
SendKeys.Send("{Enter}")
SendKeys.Send(":planter x")
SendKeys.Send("{Enter}")
Timer1.Stop()
End Sub

Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.F3 Then
Timer1.Start()
End If
End Sub
End Class
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
28 sept. 2015 à 21:18
Non soit j'ai pas compris ce que tu veux faire,
faut dire qu'avec aussi peu de détails... On sait pas ou ton mot doit s'écrire, si ton appli tourne en premier plan etc...

J'ai donc répondu au plus simple, soit écrire un mot quelque part sur la form (un textbox par exemple) et avec l'appli en premier plan.

    Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.F1 Then
            textbox1.text = "Bonjour"
        End If
    End Sub


et rien d'autre.

Maintenant si ton besoin est autre.

Il faut être précis et exhaustif
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
28 sept. 2015 à 21:24
L'aide par MP est interdite par la charte.

Les questions doivent être posées sur le forum et il faut apprendre à patienter que quelqu'un réponde.
Nous sommes bénévoles, notre priorité n'est pas de répondre sur les forums, mais de vivre notre vie.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 sept. 2015 à 21:50
Bonjour, Whismeril,
La lecture complète de ceci :
https://openclassrooms.com/forum/sujet/vb-associer-une-touche-a-un-bouton
devrait, je pense, t'éclairer sur ce qu'il veut faire et pourquoi il veut le faire.
Amitiés
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
28 sept. 2015 à 22:19
Bonsoir Uc, Ok, cependant, je n'ai pas vraiment le temps de chercher des explications que l'on ne me fournit pas.
Et un MP après 10 minutes de "silence" de ma part ne m'incite pas à faire plus d'efforts de compréhension.

Si la question avait été bien posée dès le départ, j'aurais tout simplement passé mon chemin, ne sachant pas y répondre....
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211 > Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024
Modifié par ucfoutu le 29/09/2015 à 04:05
Tout-à-fait,
Et nous ne sommes pas là pour l'aider à utiliser VB à la seule fin de tricher en ligne.
Je ferme donc cette discussion.
0
Rejoignez-nous