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

 Delphi Discussion :

Télécommander une appli exterieure


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 439
    Points : 161
    Points
    161
    Par défaut Télécommander une appli exterieure
    Bonjour,

    Je viens vers vous avec un problème qui me semble très difficile à solutionner étant donné mes faibles connaissances dans ce domaine.

    En effet, je développe un application qui à un moment donné doit lancer un exécutable extérieur (ça je sais faire avec ShellExecute), dans ce programme extérieur, l'utilisateur doit ouvrir un menu (file), puis un sous menu (import) qui ouvre un opendialog. L'utilisateur doit sélectionner un fichier dans ce dialog puis cliquer sur ouvrir.

    L'exécutable va alors effectuer un traitement sur le fichier ouvert.

    L'utilisateur doit ensuite réouvrir le menu (file) puis un sous menu (export) qui ouvre une boite de dialogue de l'exécutable extérieur dans laquelle il doit sélectionner un dossier puis cliquer sur un bouton (save).

    Enfin le programme externe doit être fermé (ça aussi je sais faire).

    J'aimerais pouvoir faire exécuter toutes les actions automatiquement par mon application, soit:

    - Ouvrir le programme extérieur. (déjà fait)
    - Cliquer à la place de l'utilisateur sur le menu/sous menu.
    - Passer au programme le nom du fichier pour l'inclure dans son open dialog
    - Simuler le clic sur le bouton ouvrir du dialog.
    - Cliquer à la place de l'utilisateur sur le second menu/sous menu.
    - Passer le nom du dossier au programme dans la seconde boîte de dialogue.
    - Simuler le clic sur le bouton save de la seconde boîte de dialogue.
    - Fermer le programme extérieur.

    Je ne sais pas si cela est réalisable, mais j'aimerais avoir une idée du chantier et des pistes à explorer dans le cas contraire.

    Merci de votre collaboration.

    Cordialement
    Pierre

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 460
    Points : 24 877
    Points
    24 877
    Par défaut
    - Cliquer à la place de l'utilisateur sur le menu/sous menu.
    On a un sujet sur simuler le clic sur un menu très récemment :
    Item de TMainMenu auto drop down

    - Passer au programme le nom du fichier pour l'inclure dans son open dialog.
    J'ai fait cette bidouille déjà à base FindWindow + SendMessage Envoyer une chaine a une application externe

    - Simuler le clic sur le bouton ouvrir du dialog..
    SendMessage aussi comme au dessus

    ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 700
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 700
    Points : 13 138
    Points
    13 138
    Par défaut
    Si les menus ont des raccourcis, simuler des commandes clavier serait beaucoup plus simple et performant

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 439
    Points : 161
    Points
    161
    Par défaut
    Merci à tous deux,

    Je vais explorer ces pistes...

    Bien cordialement
    Pierre

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 439
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    Je reviens vers vous pour tenter d'avancer dans le problème soumis plus haut.

    Je voudrais préciser que les menus/sous menus à ouvrir sont ceux de l'appli externe, non ceux de la mienne.

    Merci pour votre aide.

    Cordialement
    Pierre

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 460
    Points : 24 877
    Points
    24 877
    Par défaut
    Tu n'apportes pas de nouveauté à ta demande ni même la moindre tentative de ta part, depuis 2 mois, il aurait été agréable que tu fournisses le code que tu as produit

    La réponse d'AndNotOr en simulant le Clavier pour accéder au Menu et sous Menu me semble efficace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    keybd_event(VK_*,0,1,0); // touche enfoncée
    keybd_event(VK_*,0,2,0); // touche relevée
    PostMessage + WM_KEYDOWN\WM_KEYUP comme dans le tutoriel Contrôle du clavier et de la souris sous Windows

    Si les menus n'ont pas de raccourcis

    Tu peux simuler le clic dans l'autre application
    FindWindow pour trouver la fenêtre
    GetMenu, GetSubMenu pour trouver le Popup couplé à du FindWindow, GetCursorPos, WindowFromPoint, GetWindowRect et IsMenu, GetMenuItemRect, ça va pas être de la tarte !
    Puis faut changer la position de la Souris SetCursorPos et envoyer via SendMessage WM_MOUSEDOWN ou autre pour clic
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 439
    Points : 161
    Points
    161
    Par défaut
    Bonjour,
    En fait je n'ai pas trouvé de solution (donc de code pour résoudre ce problème)

    Merci de votre aide
    Pierre

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

Discussions similaires

  1. Drag and drop depuis une appli exterieur
    Par kazmi dans le forum Flex
    Réponses: 0
    Dernier message: 01/06/2010, 14h31
  2. [debutant]une appli vue de l'exterieur!
    Par decksroy dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 12/03/2007, 08h56
  3. [VB.NET] Comment déplacer une Form d'une appli. exterieure?
    Par jazz matazz dans le forum Windows Forms
    Réponses: 8
    Dernier message: 03/02/2006, 01h24
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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