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

VBA Access Discussion :

cliquer sur un bouton d'une autre appli par code


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 16
    Points
    16
    Par défaut cliquer sur un bouton d'une autre appli par code
    Bonjour à tous,

    ça fait un bon moment que je cherche alors je fais appel à vous...
    J'essaie de cliquer sur un bouton d'une appli extérieure par code.
    Le lancement de l'appli fonctionne, j'obtiens les handles de la bonne fenetre, et du bouton en question. J'ai vérifier avec spy++ qu'il s'agit bien du bon handle de bouton.
    Cependant l'envoi du message "clique sur le bouton" (Call SendMessage(j, BM_CLICK, 0, 0)) ne fonctionne pas. Aucune réaction.

    Y a t'il une erreur dans le code? Une idée?
    En vous remerciant par avance.

    Noémie

    voici mon code

    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
     
    Dim aRetVal As Long
    Dim i As Long, j As Long
    Dim hndApi As Long
    Dim ret1 As Long, ret2 As Long
    Dim start As Long
     
    aRetVal = ShellExecute(Me.hWnd, "open", "CheminAppli/nomAppli.exe", "", "", 1)
    i = 0
    start = Timer
    'sans la boucle, le findWindow s'effectue avant que l'appli soit vraiment lancée
    Do
        i = FindWindow("RBWindow", "Titre exact appli")
    Loop While (i = 0 And (Timer < start + 1))
     
    Debug.Print "i=" & i   'j'obtiens le bon handle de fenetre
    i = 0
    start = Timer
    Do
        j = FindWindowEx(i, ByVal 0&, "RB_Pane", "")
    Loop While (j = 0 And (Timer < start + 1))
     
    Debug.Print "j=" & j  'j'obtiens le bon handle de bouton (qui n'a pas de caption)
    ret1 = SetActiveWindow(i)
    ret1 = SetForegroundWindow(i)
     
    Call SendMessage(j, BM_CLICK, 0, 0)

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Une idée peut être
    Ton bouton déclenche bien une procédure ou une fonction ou une macro.
    N'y a til pas moyen d'appeler directement cette procédure ou fonction?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Tout d'abord merci pour votre réactivité!

    Je ne sais pas en quel langage l'appli extérieure est développée. en tout cas c'est pas du vba. je pense que c'est une procédure qui est lancée car dans spy++ dans le détail du bouton en question il y a [window proc = 745ED0D4].

    Dans ce cas peut-on lancer un procédure extérieur à mon application grace à son adresse mémoire?

    merci

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/10/2010, 14h59
  2. Intercepter l'action sur un bouton dans une autre vue
    Par Hira. dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 17/12/2008, 09h51
  3. Listener sur un bouton d'une autre classe
    Par toma03 dans le forum Débuter
    Réponses: 1
    Dernier message: 12/12/2008, 08h52
  4. Cliquer sur un bouton dans une autre application
    Par FredericB dans le forum C++Builder
    Réponses: 16
    Dernier message: 10/05/2008, 17h23
  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