Utiliser Keycode pour un Timer [Fermé]

hugoof 7 Messages postés dimanche 27 septembre 2015Date d'inscription 30 septembre 2015 Dernière intervention - 28 sept. 2015 à 18:45 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 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,
Afficher la suite 

10 réponses

Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 28 sept. 2015 à 20:30
0
Merci
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

Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 28 sept. 2015 à 20:31
et pas besoin de tout le code que tu as montré, tu peux tout supprimer
hugoof 7 Messages postés dimanche 27 septembre 2015Date d'inscription 30 septembre 2015 Dernière intervention - 28 sept. 2015 à 20:33
Merci bien j'essaie ça :p
hugoof 7 Messages postés dimanche 27 septembre 2015Date d'inscription 30 septembre 2015 Dernière intervention - 28 sept. 2015 à 20:33
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
hugoof 7 Messages postés dimanche 27 septembre 2015Date d'inscription 30 septembre 2015 Dernière intervention - 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
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 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
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 28 sept. 2015 à 21:24
0
Merci
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.
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 28 sept. 2015 à 21:50
0
Merci
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
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 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....
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention > Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 29 sept. 2015 à 03:43
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.