Bonsoir,
J'aimrais bien savoir comment je peux par code, automatiser le click sur un bouton d' une form telque Msgbox par exemple.
merci Developpez.com
Bonsoir,
J'aimrais bien savoir comment je peux par code, automatiser le click sur un bouton d' une form telque Msgbox par exemple.
merci Developpez.com
Une msgbox s'ouvre en modal.
Il arrête donc ton code tant qu'il n'y a pas eu de réponse. Donc, tu ne dois pas pouvoir.
Mais pourquoi veux tu faire cela. Si c'est parce que tu ne veux pas que le message s'affiche, si tu es sous Excel ou Access il y a moyen de ne pas les afficher.
Voir DisplayAlertspour Excel et SetWarning pour Access (a peu de chose près)
merci tan,
mais en vrai dire, je travail sur l'automatisation de la navigation sur un site.alors ds une page un msgbox se lance, donc je cherche un moyenne pour clicke desus.
Merci Developpez.com
Ok,
Je rectifie donc ce que j'ai dit. C'est peut être possible.
Mais, j'avoue que je ne sais pas.
Tan.
une piste dans la faq : simuler un clic de souris
http://vb.developpez.com/faq/?page=Autres#simule_clic
Une autre piste avec des APi surement.
A voir: FindWindow pour trouver une fenêtre
Et postMessage (ou sendMessage) avec un paramêtre WM_CLOSE
Je n'ai pas trop regarder, mais ça me semble être aussi une bonne piste.
Le problème, il faut (à priori) avec FindWindows connaitre le nom de la fenêtre.
Je regarderai ça de plus près.
J'ai ouvert une msgbox avec un autre programme (nommé Ok poi)
Et avec ce code, ça ferme cette fenêtre.
Comme je te l'ai dit, le problème de cette méthode, est qu'il faut connaitre le nom...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 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 Command1_Click() Dim hWnd As Long hWnd = FindWindow(vbNullString, "Ok poi") Call PostMessage(hWnd, WM_CLOSE, 0, 0) End Sub
Il faudrait donc trouver une API pour récupérer une fenêtre d'une aurte manière (style modal appartenant à une certaine Application)
GetTopWindow est une fonction qui retourne le handle de la fenêtre au premier plan.
Il faut passer le handle de l'application (peut être le handle de la fenêtre de ton site), et tu auras le handle de la fenêtre au premier plan (comme une msgbox se met au premier plan) tu auras le handle de la boite de dialogue sans connaitre le nom.
Je n'ai pas réussi à la faire, mais peut être que ça pourrait marcher.
Tan
Bonjour,
Merci les amis, merci Tan pour votre aide.
je vais voire comment adapter votre code avec mon prog.
Merci Developpez.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager