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 :

Simuler l'appui d'une touche en C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Par défaut Simuler l'appui d'une touche en C#
    Bonjour à tous ,


    Je suis étudiant en informatique, et j'aime la programmation.
    En ce moment je code en C# et je cherche à faire une application qui puisse à partir du nom de processus en cours
    Obtenir les noms de fenêtre et ensuite Générer ou simuler l'appui de plusieurs touches du clavier uniquement dans cette fenêtre cible.

    Je travaille avec WPF et je suis en Framework 4.5.1 je travaille sur Visual Studio 2013

    J'ai déjà fais un petit bout du travail, à savoir la partie concernant les processus .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    // JE CRÉE UN TABLEAU AVEC TOUS MES PROCESSUS DEDANS
     
    			Process[] myProcesses = Process.GetProcesses();
     
    // JE PARCOURS LE TABLEAU ET AJOUTE TOUTES LES VALEURS DANS LA COMBO BOX 
     
                foreach (Process myProcess in myProcesses)
                {
                    MaCombobox.Items.Add(myProcess.ProcessName );
                }


    Ce bout de code prend tous les processus en cours et les affiche dans une ComboBox .
    N'oubliez pas que si vous voulez utiliser mon code vous devez rajouter "using System.Diagnostics;"


    Merci d'avance

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    sendkeys

    pour les fenetres il faudra s'orienter vers des api de windows
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Par défaut
    SendKey , justement à ce propos ! je n'arrive pas à l'utiliser peut importe comment je m'y prend il me met toujours une erreur ( soulignement rouge )
    SendKey n'est donc pas reconnue comme il devrait l’être .

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Par défaut
    Merci pour ton aide , j'ai trouvé du coté de winAPI .

    Je donne mon code pour être constructif :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
     
    // Je déclare ceci dans ma classe
     
            [DllImport("user32.dll", SetLastError = true)]
     
            // Voici ma fonction qui va servir à simuler l'appuie des touches
     
            static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
     
            public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Appuie  de la  touche
            public const int KEYEVENTF_KEYUP = 0x0002; //Relachement  de la  touche
     
     
     
            //Les codes ci-après ne sont pas toujours juste ( 4 premières lettres testées )
     
            public const int A = 0x41;
            public const int B = 0x42;
            public const int C = 0x43;
            public const int D = 0x44;
            public const int E = 0x45;        
            public const int F = 0x46;
            public const int G = 0x47;
            public const int H = 0x48;
            public const int I = 0x49;
            public const int J = 0x50;
            public const int K = 0x51;
            public const int L = 0x52;
            public const int M = 0x53;
            public const int N = 0x54;
            public const int O = 0x55;
            public const int P = 0x56;
            public const int Q = 0x57;
            public const int R = 0x58;
            public const int S = 0x59;
            public const int T = 0x60;
            public const int U = 0x61;
            public const int V = 0x62;
            public const int W = 0x63;
            public const int X = 0x64;
            public const int Y = 0x65;
            public const int Z = 0x66;
     
     
     
    // Je crée ma fonction qui va appuyer sur les touches
     
            public static void PressKeys()
            {
     
                System.Threading.Thread.Sleep(5000);
     
     
                // APPUIE DE LA TOUCHE A
     
                keybd_event(A, 0, KEYEVENTF_EXTENDEDKEY, 0); //appuie 
                keybd_event(A, 0, KEYEVENTF_KEYUP, 0); //relache
     
                // PAUSE (temps en miliseconde)
                System.Threading.Thread.Sleep(1000);
     
                // APPUIE DE LA TOUCHE B
                keybd_event(B, 0, KEYEVENTF_EXTENDEDKEY, 0);
                keybd_event(B, 0, KEYEVENTF_KEYUP, 0);
     
     
                System.Threading.Thread.Sleep(1000);
     
     
                // APPUIE DE LA TOUCHE C
                keybd_event(C, 0, KEYEVENTF_EXTENDEDKEY, 0);
                keybd_event(C, 0, KEYEVENTF_KEYUP, 0);
     
     
                System.Threading.Thread.Sleep(1000);
     
     
                // APPUIE DE LA TOUCHE D
                keybd_event(D, 0, KEYEVENTF_EXTENDEDKEY, 0);
                keybd_event(D, 0, KEYEVENTF_KEYUP, 0);  
     
     
            }
    // Et j’appelle ma fonction ou bon me semble

    Donc que fais ce code ?

    Résumons !

    Il va écrire :
    A (J'attend 1 seconde)
    B (J'attend 1 seconde)
    C (J'attend 1 seconde )
    D (J'attend 1 seconde )

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Par défaut


    Quelqu'un pourrait-il m'aider ?! Il me reste à récupéré la fenêtre cible pour la simulation d'appuie de touche ...

    Je ne sais pas comment faire .


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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Simuler l'appui d'une touche!
    Par samy100 dans le forum Windows
    Réponses: 3
    Dernier message: 11/03/2007, 10h43
  2. Réponses: 3
    Dernier message: 19/02/2007, 09h30
  3. Réponses: 7
    Dernier message: 16/03/2006, 20h54
  4. Simuler l'appuis d'une touche
    Par w0lf dans le forum Langage
    Réponses: 4
    Dernier message: 15/03/2006, 22h00
  5. Simuler l'appui sur une touche, au niveau système
    Par debutant java dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/08/2004, 12h51

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