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

C# Discussion :

sendkeys ne marche que une fois ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut sendkeys ne marche que une fois ?
    bonjour,

    je fais une application de test avec une form et un bouton, lorsque que j'appuie sur le bouton:

    je fait un findwindow sur une appli par exemple (notepad)
    je fait un SetForegroundWindow
    puis apres un SendKeys.Senwait
    et un SendKeys.Flush()

    ca marche tres bien mais lorsque que j'appuie plusieurs fois ca ne marche que pour la premiere fois et apres ca ne marche plus ou c'est aleatoire quelques fois ca marche et d'autre non

    Quelqu'un a une idee ?

    Merci de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    Citation Envoyé par andromeda Voir le message
    bonjour,

    je fais une application de test avec une form et un bouton, lorsque que j'appuie sur le bouton:

    je fait un findwindow sur une appli par exemple (notepad)
    je fait un SetForegroundWindow
    puis apres un SendKeys.Senwait
    et un SendKeys.Flush()

    ca marche tres bien mais lorsque que j'appuie plusieurs fois ca ne marche que pour la premiere fois et apres ca ne marche plus ou c'est aleatoire quelques fois ca marche et d'autre non

    Quelqu'un a une idee ?

    Merci de votre aide.
    Bonjour,

    Je pense qu'il serait bon que tu nous donnes plus d'information sur le sendKeys que tu envois:
    • A quel moment fais-tu un sendkey ?
    • Quelles sont les touches que tu envois ?
    • A quoi ressemble le code qui te permets de faire tout ça?


    Suite à tes réponses je pense pouvoir t'aider.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut
    voici le code du bouton send:

    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
    28
     
     
            private void btnSend_Click(object sender, EventArgs e)
            {
                if (textSend.Text.Trim() == "")
                {
                    MessageBox.Show("Veuillez saisir un texte");
                    textSend.Focus();
                    return;
                }
     
                if (!sendInit())
                    return;
     
                try
                {            
                    for (int i = 0; i < numericUpDown1.Value; i++)
                    {
                        SendKey(textSend.Text, false, false);
                        SendKey("{ENTER}", true, false);
                        Thread.Sleep((int)numericUpDown2.Value);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
            }
    Le code de sendInit

    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
     
      //Init du sendkeys
            private bool sendInit()
            {
                IntPtr chatHandle = IntPtr.Zero;
                chatHandle = FindWindow(null, getVersion());
                if (chatHandle == IntPtr.Zero)
                {
                    MessageBox.Show("Application non trouvé");
                    return false;
                }
                else
                {
                    SetForegroundWindow(chatHandle);
                }
                return true;
            }
    le code de sendKey

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      //envoi d'une commande
            private void SendKey(string cmd, bool bValue, bool bFlush)
            {
                if (bValue)
                    SendKeys.Send(cmd);
                else
                    SendKeys.SendWait(cmd);
     
                if (bFlush)
                    SendKeys.Flush();
            }
    il me semble que c'est le flush quand je le met pas ca a l'air de fonctionner sauf que le code {ENTER} n'est pas envoyé.

    en fait j'envoi un texte saisie un nombre de fois regler par numericvalue.

    Merci.

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    Bonjour,

    Dans un premier temps je te propose de tester la chose suivante.
    A la place de faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SendKey("{ENTER}", true, false);
    Fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SendKey("~", true, false);
    En effet Microsoft se reserve un certain nombre de caractères qui leur sert a en evoyer d'autre (c'est de cette façon qu'ils ont créé leur langague du sendKeys). De se fait tu risques fort de te trouver face à problème si tu souhaites envoyer un des trois caractères suivants : ^ , %, ~.
    Pour microsoft ces trois caractèrs correspondent respectivement à : CTRL, ALT, ENTER.

    Voila une fois que tu auras testé cela reviens afin de me tenir au courant des résultat de tes différents tests.

    Bonne journée.

    PS: Je reflechis à ton problème pendant ce temps

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut
    j'ai fait des test avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SendKey("coucou", true , false) 
     SendKey("~", true , false)
    quand je click sur le bouton envoyer
    il m'envoi bien le coucou avec le ENTER
    quand je rappuie sur le bouton envoyer il m'envoi plus rien meme si je reappuie apres sur le bouton envoyer

    en faisant le test avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SendKey("coucou", false, false) 
     SendKey("~", false, false)
    il m'envoi bien "coucou" comme ci dessus
    quand je reappuie il me les renvoi bien
    quand j'appuie de nouveau il ne l'envoi plus
    quand j'appuie de nouveau il me reenvoi bien "coucou"
    c'est aleatoire.

    Parfois le enter n'est pas envoyer et le texte s'affiche a cote du texte precedent
    j'utilise le NET 3.5

    Merci de ton aide.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    Bonjour,

    Je vais regarder tout ça courant de la journée.
    Je te tiens au courant !

Discussions similaires

  1. Bouton ActiveX qui ne marche qu'une fois
    Par JeanMikael dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/09/2007, 11h25
  2. Macro qui marche qu'une fois
    Par baski dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/06/2007, 22h55
  3. Fonction javascript qui marche qu'une fois sous Firefox
    Par ns_deux dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 10h38
  4. Adodc1 ne marche qu'une fois ?
    Par VARACH dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 04/04/2006, 13h57
  5. [applet]ne marche qu'une fois..
    Par woorant dans le forum Applets
    Réponses: 2
    Dernier message: 22/02/2006, 10h00

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