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 :

Cliquez sur un bouton d'une application Externe depuis mon Appli


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Informaticien/Automaticien
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien/Automaticien

    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Points : 33
    Points
    33
    Par défaut Cliquez sur un bouton d'une application Externe depuis mon Appli
    Bonjour

    Je voudrais depuis mon appli VB .net cliquer cliquer sur le bouton "sauvegarder" d'une application externe (application d'acquisition de données via une sonde branchée sur le port USB), pour le moment j'arrive à obtenir le handle de la fenetre de l'application externe mais je n'arrive pas à voir ce que je peux faire de plus...

    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Informaticien/Automaticien
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien/Automaticien

    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Personne pour me dépanner ? Alors pour le moment j'ai trouvé une solution, je récupère le Handle de l'appli et ensuite je fais du Send Key... Cela marche mais ca ne me parait pas être le plus propre...

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Je n'ai jamais été amené à faire ça, mais pour le peu de recherches faites, je pense que tu peux t'inspirer de cet exemple : Using Windows APIs from C#

    Et plus particulièrement sur cette partie (à moins que ce ne soit ce que tu entends par "Send key" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Get a handle for the "1" button
        hwndChild = FindWindowEx((IntPtr)hwnd,IntPtr.Zero,"Button","1");
     
        //send BN_CLICKED message
        SendMessage((int)hwndChild,BN_CLICKED,0,IntPtr.Zero);
    C'est du C# mais transcriptible assez facilement.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Informaticien/Automaticien
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien/Automaticien

    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Merci je ne vois pas comment le transcrire en VB .Net... Je ne sais pas si c'est l'équivalent du SendKeys que j'utilise...

  5. #5
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Tu peux utiliser ce convertisseur: Convert C# to VB.NET

    En gros avec ce bout de code, il cherche la fenêtre intitulé "Calculator", s'il ne la trouve pas, il propose de la lancer, s'il la trouve, il affecte à hwnd le resultat de FindWindow.

    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
    int hwnd=0;
    IntPtr hwndChild=IntPtr.Zero;
     
    //Get a handle for the Calculator Application main window
    hwnd=FindWindow(null,"Calculator");
    if(hwnd == 0)
    {
        if(MessageBox.Show("Couldn't find the calculator" + 
                           " application. Do you want to start it?", 
                           "TestWinAPI", 
                           MessageBoxButtons.YesNo)== DialogResult.Yes)
        {
            System.Diagnostics.Process.Start("Calc");
        }
    }

    Et ensuite si hwnd ne vaut pas zero c'est qu'il a bien trouvé la fenêtre sur laquelle interagir, et donc dans l'exemple il pose un handle sur le Bouton 1, et lui envoi un BN_CLICKED pour lancer l'event du bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    else
    {
     
        //Get a handle for the "1" button
        hwndChild = FindWindowEx((IntPtr)hwnd,IntPtr.Zero,"Button","1");
     
        //send BN_CLICKED message
        SendMessage((int)hwndChild,BN_CLICKED,0,IntPtr.Zero);
    C'est très grossièrement résumé, mais il te faut juste lire le fonctionnement et les paramètres de FindWindow, FindWindowEx, et SendMessage, et tu y verras plus clair.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

Discussions similaires

  1. lancer une application externe depuis java
    Par ticle dans le forum Général Java
    Réponses: 2
    Dernier message: 06/03/2014, 08h54
  2. Lancer une application externe depuis le serveur
    Par M4veR1K dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 19/04/2012, 09h18
  3. Lancer une application externe depuis une applet
    Par kjimmie dans le forum Applets
    Réponses: 2
    Dernier message: 18/12/2011, 13h19
  4. Réponses: 5
    Dernier message: 18/12/2009, 09h40
  5. cliquer sur un bouton d'une application extérieure
    Par looc 6699 dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 12/12/2005, 17h46

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