Communication inter Application

espadon2 Messages postés 71 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 octobre 2008 - 10 sept. 2003 à 17:07
espadon2 Messages postés 71 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 octobre 2008 - 14 sept. 2003 à 13:33
Bonjour à tous,

J' ai une appli vb qui execute une partie d'une autre appli commercial . Cette appli commercial execute un script pour incorporer dans sa base des fichiers (XML) généré par mon programme. De plus mon prog recupere egalment certains des fichiers (xml) de l' appli commercial.

il y environ 4 echanges de fichiers qui doit de faire automatiquement la nuit.
Mais lorsque le script de l' appli commercial à incorporé mon premier fichiers , elle envoie un message (fenêtre) indiquant que l'incorporation a bien eu lieu " Traitement terminé " + buton "OK" . Du coup tout s 'arrete, mon prog est en attente , car pour debloquer le tout il faudrait que quelq'un clique sur le bouton "ok " de la fenêre.

Voila donc ; comment fermer cette fenêtre en auto, quand le traitement est terminé ou bien 30 min apres le lancement du script d'incorporation

Merci a tous ceux qui pourront m'aider car là , j' ai tous essayé ...

9 réponses

RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
10 sept. 2003 à 17:18
Hello !

Tu pourrais utiliser l'instruction SendKeys pour simuler une pression sur la touche Enter (si "Ok" est le bouton par défaut) ou la combinaison de touches appropriées.

RicoNuch
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 sept. 2003 à 17:21
Une solution vb me semble difficile mais sait-on jamais.
Si rien en vue ET que ton prog tourne sur du W2k ou superieur, tu peux me contacter par un message sur le site.
BruNews, ciao...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 sept. 2003 à 17:24
Et si ce n'est pas la bonne fenetre qui le reçoit ?
Ne jamais faire ce genre de manip.
BruNews, ciao...
0
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
10 sept. 2003 à 17:37
On peut s'assurer de la fenêtre qui a le focus au moment d'utiliser cette instruction...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 sept. 2003 à 17:42
Donne lui bien tous les details alors, qu'il n'aille pas prendre de risques.
BruNews, ciao...
0
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
10 sept. 2003 à 18:13
Hello !

Notre ami Espadon précise qu'il "a déjà tout essayé". Je n'allais donc pas lui en balancer une tartine pour me voir répondre que ça ne marche pas pour telle ou telle raison. Mon message était donc plutôt destiné à ouvrir le dialogue avec une suggestion (comme le montre l'emploi du conditionnel).

Tu remarqueras aussi que je n'avais pas indiqué la syntaxe de l'instruction. C'était justement pour pouvoir lui fournir les mises en garde en même que le mode d'emploi s'il me l'avait demandé.

RicoNuch
0
espadon2 Messages postés 71 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 octobre 2008
13 sept. 2003 à 16:37
J' ai peut etre trouvé un truc grace a vos conseils.
J' ai trouvé un autre petit prog "tueur de fenetre" . Ce prog se lance avant toutes opérations , attends que la fenetre "traitement terminé' apparait et la ferme . je la detecte grace a son nom , toujours identique.

cf http://faq.vb.free.fr/index.php?question=114

vous en pensez quoi (c'est un peu bourrin je sais) ,et puis merci à tous
---------------------------------------------------------

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const WM_CLOSE = &H10

Private Sub Form_Load()

Dim hWnd As Long
continue:
hWnd = FindWindow(vbNullString, "Traitement")
If hWnd <> 0 Then
Call PostMessage(hWnd, WM_CLOSE, 0, 0)

else goto continue
End If

end

End Sub
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 sept. 2003 à 21:23
De retour sur une boucle, faudrait au moins ajouter un DoEvents sur le 'Else'. Au cas ou la fenetre "Traitement" ne serait pas trouvee, boucle infinie.
Tu vois si tu peux t'arranger avec cela, sinon tu me contactes et je te ferai une vraie dll pour un hook systeme qui tue la fenetre a sa naissance.
BruNews, ciao...
0
espadon2 Messages postés 71 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 octobre 2008
14 sept. 2003 à 13:33
Ok j 'essayes cela demain au boulot, et si ca marche pas je te recontacte ...merci
0
Rejoignez-nous