IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Aide SendKeys VB 2010


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    École des adultes
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : École des adultes

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Aide SendKeys VB 2010
    Bonjour, je code un programme sous Visual Basic 2010 express. Dans mon programme, je veut envoyer un texte d'une textbox par exemple (comme avec sendkeys) mais lettre par lettre et non tout d'un coup et si possible de regler cette vitesse. Je voudrais savoir si cela est possible. Merci pour vos future réponses.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pose un timer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    École des adultes
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : École des adultes

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Mmm pas sur que poser simplement un timer fera tout, pourrait tu développer?

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    envoyer lettre par lettre ca veut dire genre une lettre toute les 50 milliseconde

    le timer permet de faire un truc tous les tant de temps
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    École des adultes
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : École des adultes

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Ouai mais je sais pas comment le lier au sendkeys par exemple ou comment le placer, si tu pouvais me guider ou si tu ne sais pas..

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le sendkeys dans l'évènement timer.tick
    une variable en dehors de la sub que tu incrémentes à chaque timer.tick et qui te permet de savoir à quelle lettre tu en es dans le string
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    École des adultes
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : École des adultes

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Il reste la variable que je ne sais pas trop comment utilisé dans cas, comment la codé :$

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Pourtant Pol63 a quasiment tout dit... C'est pas compliqué :
    - 1 Form
    - 1 variable (String Private de la Form) contenant la chaine à envoyer,
    - 1 Compteur (Integer Private de la Form),
    - 1 Timer

    Dans Timer.tick, on envoie le caractère positionné à la position Compteur de la chaine et on incrémente Compteur.
    Lorsque la chaine est entièrement envoyée, on arrête le timer.

    Après, il reste le cours de Philippe Lasserre.
    Bonne journée.
    eb.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    École des adultes
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : École des adultes

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    Pourtant Pol63 a quasiment tout dit... C'est pas compliqué :
    - 1 Form
    - 1 variable (String Private de la Form) contenant la chaine à envoyer,
    - 1 Compteur (Integer Private de la Form),
    - 1 Timer

    Dans Timer.tick, on envoie le caractère positionné à la position Compteur de la chaine et on incrémente Compteur.
    Lorsque la chaine est entièrement envoyée, on arrête le timer.

    Après, il reste le cours de Philippe Lasserre.
    Bonne journée.
    eb.
    Voila j'ai fait ça mais je me demande comment arrêter le timer quand tout est envoyé? Merci d'avance
    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
    Public Class Form1
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim arrayLetters As Array = TextBox1.Text.ToCharArray()
            For i = 0 To arrayLetters.Length - 1
                ListBox1.Items.Add(arrayLetters(i))
                Timer1.Start()
            Next
        End Sub
     
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1
            SendKeys.Send(ListBox1.SelectedItem)
        End Sub
    End Class

  10. #10
    Membre averti Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Points : 304
    Points
    304
    Par défaut
    Rien ne stipule l'incrémentation dans ton timer. Tu boucles à priori sur la première lettre.
    J'ai testé le code ci-dessous, ça marche. A toi de l'adapter pour ton cas de figure.

    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
    25
     
    Private leTexte As String = "wakatepe baboun"
    Private position As Short
     
    Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
        'définir la propriété 'interval' du timer
        Timer1.Start()
    End Sub
     
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Call s_SetLetter()
    End Sub
     
    Private Sub s_SetLetter()
        Dim Texte As String = txtLettres.Text 'le textBox
        Dim tmp As String = ""
        If position >= leTexte.Length Then
            position = 0
            Texte = ""
            'ou alors, on arrete le timer => Timer1.Stop()
        End If
        tmp = leTexte.Chars(position)
        txtLettres.Text = Texte & tmp
        position += 1
    End Sub

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par vondoume Voir le message
    Bonjour, je code un programme sous Visual Basic 2010 express. Dans mon programme, je veut envoyer un texte d'une textbox par exemple (comme avec sendkeys) mais lettre par lettre et non tout d'un coup et si possible de regler cette vitesse. Je voudrais savoir si cela est possible. Merci pour vos future réponses.
    Un exemple (un timer, un bouton, 2 textbox)
    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
    Public Class frmTimers
        Private pos As Integer = 0
     
        Private Sub btnEnvoie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnvoie.Click
            If IsNumeric(TextBox2.Text) Then Timer1.Interval = Integer.Parse(TextBox2.Text) Else Timer1.Interval = 500 'textbox2 contient la frequence de déclenchement du timer
            Timer1.Enabled = True
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If pos < TextBox1.Text.Length Then
                SendKeys.Send(TextBox1.Text(pos))
                pos += 1
            Else
                'SendKeys.Send("{ENTER}")
                Timer1.Enabled = False
            End If
        End Sub
     
    End Class
    Utilisation avec notepad par exemple
    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
    25
    26
    27
    Public Class frmTimers
     
        Private pos As Integer = 0
        Private ProcID As Integer
     
        Private Sub btnEnvoie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnvoie.Click
            AppActivate(ProcID)
            If IsNumeric(TextBox2.Text) Then Timer1.Interval = Integer.Parse(TextBox2.Text) Else Timer1.Interval = 500 'textbox2 contient la frequence de déclenchement du timer
            Timer1.Enabled = True
        End Sub
     
        Private Sub frmTimers_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ProcID = Shell("notepad.EXE", AppWinStyle.NormalFocus)
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If pos < TextBox1.Text.Length Then
                SendKeys.Send(TextBox1.Text(pos))
                pos += 1
            Else
                SendKeys.Send("{ENTER}")
                Timer1.Enabled = False
                pos = 0
            End If
        End Sub
     
    End Class
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    École des adultes
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : École des adultes

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Un exemple (un timer, un bouton, 2 textbox)
    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
    Public Class frmTimers
        Private pos As Integer = 0
     
        Private Sub btnEnvoie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnvoie.Click
            If IsNumeric(TextBox2.Text) Then Timer1.Interval = Integer.Parse(TextBox2.Text) Else Timer1.Interval = 500 'textbox2 contient la frequence de déclenchement du timer
            Timer1.Enabled = True
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If pos < TextBox1.Text.Length Then
                SendKeys.Send(TextBox1.Text(pos))
                pos += 1
            Else
                'SendKeys.Send("{ENTER}")
                Timer1.Enabled = False
            End If
        End Sub
     
    End Class
    Utilisation avec notepad par exemple
    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
    25
    26
    Public Class frmTimers
     
        Private pos As Integer = 0
        Private ProcID As Integer
     
        Private Sub btnEnvoie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnvoie.Click
            AppActivate(ProcID)
            If IsNumeric(TextBox2.Text) Then Timer1.Interval = Integer.Parse(TextBox2.Text) Else Timer1.Interval = 500 'textbox2 contient la frequence de déclenchement du timer
            Timer1.Enabled = True
        End Sub
     
        Private Sub frmTimers_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ProcID = Shell("notepad.EXE", AppWinStyle.NormalFocus)
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If pos < TextBox1.Text.Length Then
                SendKeys.Send(TextBox1.Text(pos))
                pos += 1
            Else
                SendKeys.Send("{ENTER}")
                Timer1.Enabled = False
            End If
        End Sub
     
    End Class
    Merci à toi tout marche nickel, il manquait juste de reset la "pos" quand le timer s'arrête (pos = 0). Encore merci!

  13. #13
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    De rien.
    Exact, j'avais juste testé une fois dans l'exemple complet avec notepad que j'avais rajouté après au post (rectifié dans le code complet), pense a mettre en Résolue.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d'aide sur excel 2010
    Par dadounebil dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/06/2014, 03h04
  2. Aide Visual Studio 2010 et 2012
    Par matdefrance dans le forum Visual Studio
    Réponses: 1
    Dernier message: 04/04/2013, 11h14
  3. Problème installation Aide sur VS 2010 Ultimate
    Par Laurent GAUDILLIER dans le forum Visual Studio
    Réponses: 1
    Dernier message: 19/12/2011, 19h58
  4. Visionneuse d'aide visual studio 2010
    Par oliver29900 dans le forum Visual Studio
    Réponses: 1
    Dernier message: 06/12/2011, 17h07
  5. Système d'aide de Delphi 2010
    Par Teddy dans le forum EDI
    Réponses: 2
    Dernier message: 28/12/2010, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo