J'ai un programme en vb .net qui sert à déployer des applications sur de
nombreux postes. En clair mon programme lance des programmes d'installation
en mode silencieux.
Cependant une de ces installation, pour des raisons que je ne maitrise pas
renvoie un message d'erreur (sans conséquences sur le fonctionnement de
l'appli installée), et tant que l'on a pas cliqué sur OK les installations
ne continuent pas.
Y a t-il un moyen d'automatiser le click sur la messagebox?
Je suis sur la piste des API Findwindow et sendmessage, mais ça ne semble
marcher qu'avec les fenêtres principale....
Si quelqu'un a une réponse ou un élément de réponse je lui en sera trés
reconnaissant.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut Christian ! :O)
FindWindow() permet effectivement de retrouver les fenêtres principales. Il faut employer FindWindowEx(), une fois qu'on a le handle (hWnd) de la fenêtre principale que l'on cherche, pour trouvé la sous-fenêtre que l'on cherche (tu peux même retrouvé le handle du bouton que tu cherches). Ensuite, je crois que tu pourrais employer l'API SetFocus() pour donner le focus à cette fenêtre suivi d'un appel à la méthode SendKeys.Send() pour lui envoyé un "Enter" afin de déclencher un Click sur le bouton. Tu pourrais également simuler un Click sur le bouton en envoyant sucessivement les messages WM_LBUTTONDOWN (0x201) et WM_LBUTTONUP (0x202) par le biais de l'API SendMessage().
-- Cordialement Yanick MVP pour Visual Basic
"Christian" a écrit dans le message de news:
Bonjour,
J'ai un programme en vb .net qui sert à déployer des applications sur de nombreux postes. En clair mon programme lance des programmes
d'installation
en mode silencieux. Cependant une de ces installation, pour des raisons que je ne maitrise pas renvoie un message d'erreur (sans conséquences sur le fonctionnement de l'appli installée), et tant que l'on a pas cliqué sur OK les installations ne continuent pas. Y a t-il un moyen d'automatiser le click sur la messagebox? Je suis sur la piste des API Findwindow et sendmessage, mais ça ne semble marcher qu'avec les fenêtres principale.... Si quelqu'un a une réponse ou un élément de réponse je lui en sera trés reconnaissant.
Merci d'avance
Christian Cazaux
Salut Christian ! :O)
FindWindow() permet effectivement de retrouver les fenêtres principales. Il
faut employer FindWindowEx(), une fois qu'on a le handle (hWnd) de la
fenêtre principale que l'on cherche, pour trouvé la sous-fenêtre que l'on
cherche (tu peux même retrouvé le handle du bouton que tu cherches).
Ensuite, je crois que tu pourrais employer l'API SetFocus() pour donner le
focus à cette fenêtre suivi d'un appel à la méthode SendKeys.Send() pour lui
envoyé un "Enter" afin de déclencher un Click sur le bouton. Tu pourrais
également simuler un Click sur le bouton en envoyant sucessivement les
messages WM_LBUTTONDOWN (0x201) et WM_LBUTTONUP (0x202) par le biais de
l'API SendMessage().
--
Cordialement
Yanick
MVP pour Visual Basic
"Christian" <christian.cazaux@free.fr> a écrit dans le message de
news:Xns969271C10A227christiancazauxfreef@212.27.42.74...
Bonjour,
J'ai un programme en vb .net qui sert à déployer des applications sur de
nombreux postes. En clair mon programme lance des programmes
d'installation
en mode silencieux.
Cependant une de ces installation, pour des raisons que je ne maitrise pas
renvoie un message d'erreur (sans conséquences sur le fonctionnement de
l'appli installée), et tant que l'on a pas cliqué sur OK les installations
ne continuent pas.
Y a t-il un moyen d'automatiser le click sur la messagebox?
Je suis sur la piste des API Findwindow et sendmessage, mais ça ne semble
marcher qu'avec les fenêtres principale....
Si quelqu'un a une réponse ou un élément de réponse je lui en sera trés
reconnaissant.
FindWindow() permet effectivement de retrouver les fenêtres principales. Il faut employer FindWindowEx(), une fois qu'on a le handle (hWnd) de la fenêtre principale que l'on cherche, pour trouvé la sous-fenêtre que l'on cherche (tu peux même retrouvé le handle du bouton que tu cherches). Ensuite, je crois que tu pourrais employer l'API SetFocus() pour donner le focus à cette fenêtre suivi d'un appel à la méthode SendKeys.Send() pour lui envoyé un "Enter" afin de déclencher un Click sur le bouton. Tu pourrais également simuler un Click sur le bouton en envoyant sucessivement les messages WM_LBUTTONDOWN (0x201) et WM_LBUTTONUP (0x202) par le biais de l'API SendMessage().
-- Cordialement Yanick MVP pour Visual Basic
"Christian" a écrit dans le message de news:
Bonjour,
J'ai un programme en vb .net qui sert à déployer des applications sur de nombreux postes. En clair mon programme lance des programmes
d'installation
en mode silencieux. Cependant une de ces installation, pour des raisons que je ne maitrise pas renvoie un message d'erreur (sans conséquences sur le fonctionnement de l'appli installée), et tant que l'on a pas cliqué sur OK les installations ne continuent pas. Y a t-il un moyen d'automatiser le click sur la messagebox? Je suis sur la piste des API Findwindow et sendmessage, mais ça ne semble marcher qu'avec les fenêtres principale.... Si quelqu'un a une réponse ou un élément de réponse je lui en sera trés reconnaissant.
Merci d'avance
Christian Cazaux
Christian
"Zoury" <yanick_lefebvre at hotmail dot com> wrote in news::
Salut Christian ! :O)
FindWindow() permet effectivement de retrouver les fenêtres principales. Il faut employer FindWindowEx(), une fois qu'on a le handle (hWnd) de la fenêtre principale que l'on cherche, pour trouvé la sous-fenêtre que l'on cherche (tu peux même retrouvé le handle du bouton que tu cherches). Ensuite, je crois que tu pourrais employer l'API SetFocus() pour donner le focus à cette fenêtre suivi d'un appel à la méthode SendKeys.Send() pour lui envoyé un "Enter" afin de déclencher un Click sur le bouton. Tu pourrais également simuler un Click sur le bouton en envoyant sucessivement les messages WM_LBUTTONDOWN (0x201) et WM_LBUTTONUP (0x202) par le biais de l'API SendMessage().
Merci pour ton aide, en fait il s'avère que Findwindow est suffisant pour récupérer le handle du message. Par contre j'ai pris l'option du showwindow pour activer la fenêtre avant le sendkeys.send, et ça marche aussi. Merci encore
Christian Cazaux
"Zoury" <yanick_lefebvre at hotmail dot com> wrote in
news:Ok4ZSR7hFHA.1788@TK2MSFTNGP12.phx.gbl:
Salut Christian ! :O)
FindWindow() permet effectivement de retrouver les fenêtres
principales. Il faut employer FindWindowEx(), une fois qu'on a le
handle (hWnd) de la fenêtre principale que l'on cherche, pour trouvé
la sous-fenêtre que l'on cherche (tu peux même retrouvé le handle du
bouton que tu cherches). Ensuite, je crois que tu pourrais employer
l'API SetFocus() pour donner le focus à cette fenêtre suivi d'un appel
à la méthode SendKeys.Send() pour lui envoyé un "Enter" afin de
déclencher un Click sur le bouton. Tu pourrais également simuler un
Click sur le bouton en envoyant sucessivement les messages
WM_LBUTTONDOWN (0x201) et WM_LBUTTONUP (0x202) par le biais de l'API
SendMessage().
Merci pour ton aide, en fait il s'avère que Findwindow est suffisant pour
récupérer le handle du message. Par contre j'ai pris l'option du showwindow
pour activer la fenêtre avant le sendkeys.send, et ça marche aussi.
Merci encore
"Zoury" <yanick_lefebvre at hotmail dot com> wrote in news::
Salut Christian ! :O)
FindWindow() permet effectivement de retrouver les fenêtres principales. Il faut employer FindWindowEx(), une fois qu'on a le handle (hWnd) de la fenêtre principale que l'on cherche, pour trouvé la sous-fenêtre que l'on cherche (tu peux même retrouvé le handle du bouton que tu cherches). Ensuite, je crois que tu pourrais employer l'API SetFocus() pour donner le focus à cette fenêtre suivi d'un appel à la méthode SendKeys.Send() pour lui envoyé un "Enter" afin de déclencher un Click sur le bouton. Tu pourrais également simuler un Click sur le bouton en envoyant sucessivement les messages WM_LBUTTONDOWN (0x201) et WM_LBUTTONUP (0x202) par le biais de l'API SendMessage().
Merci pour ton aide, en fait il s'avère que Findwindow est suffisant pour récupérer le handle du message. Par contre j'ai pris l'option du showwindow pour activer la fenêtre avant le sendkeys.send, et ça marche aussi. Merci encore