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

Macros et VBA Excel Discussion :

Fermeture d'une fenêtre Firefox


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut Fermeture d'une fenêtre Firefox
    Bonjour à tous

    J'ouvre une fenêtre firefox avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub firefox_test()
    Dim RetVal
    ' Lance Firefox sur une URL spécifiée
    RetVal = Shell("C:\progra~1\mozill~1\firefox.exe http://www.developpez.net/forums", 1)
     
    End Sub
    Comment puis-je la fermer ?

    Merci d'avance

    Eric

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Essaie avec WM_CLOSE.

    Un petit code trouvé sur Internet :

    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
    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
     
        hWnd = FindWindow(vbNullString, "Lecteur CD")
        If hWnd <> 0 Then
            Call PostMessage(hWnd, WM_CLOSE, 0, 0)
        Else
            MsgBox "Impossible de trouver la fenêtre !", vbExclamation
        End If
     
    End Sub
    Tu utilises l'API FindWindow pour retrouver ta fenêtre. Il faudra donc passer par le nom de ta fenêtre. Ici, c'est "Lecteur CD". Une fois ta fenêtre trouvée, tu lui envoies le WM_CLOSE et le tour est joué !

    Dis-moi si cela fonctionne.

    A bientôt !

  3. #3
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour DeaD78

    Merci pour ta réponse.

    J'ai testé, mais .... rien à faire. Je m'y prend peut être mal.

    Tu dis : ... Il faudra donc passer par le nom de ta fenêtre ....

    J'ai essayé le non de "l'onglet", sans succès, puis l'URL, mais toujours sans succès. J'ai même tenté de mettre ton code à la suite du mien, mais ..... hWnd est toujours égal à "0".

    Donc qu'appelles tu "fenêtre" ? là est mon point faible

    Par contre si je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hWnd = FindWindow(vbNullString, "Mozilla Firefox")
    cela me ferme Firefox, et ce n'est pas le but exact. J'aimerai garder Firefox ouvert.

    Mon but est d'aller vérifier 1000 pages (toujours les mêmes ou presque) 1 fois par semaine minimum.

    Merci de m'aider

    Eric

    PS : Firefox ne se ferme plus avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hWnd = FindWindow(vbNullString, "Mozilla Firefox")
    je n'y comprends plus rien

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Par exemple, sur la page d'accueil Google, le nom de ma fenêtre sera : "Google - Mozilla Firefox". Il s'agit du nom que tu vois en haut à gauche dans la barre bleue lorsque Firefox est ouvert. Je viens de tester et cela marche.

    En revanche, cela ferme la fenêtre (Ctrl + N pour ouvrir de nouvelles fenêtres) peu importe les autres onglets présents dedans.

    Je pense que cela importe peu dans ton cas vu que tu ouvres une fenêtre exprès par le Shell. Ferme-la selon le nom du dernier onglet et cela sera bon. Tes autres fenêtres Firefox ne le seront pas.

    Dis-moi si cela convient !

  5. #5
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    si tu dois faire de l'automation avec VBA et des pages web, oublie vite Mozilla Firefox et passe au composant Internet Explorer qui est fait pour être piloté depuis une autre application.
    Pour encore plus de performance et suivant les cas un composant Winsock (moins gourmand en ressources) peut aussi faire l'affaire.

  6. #6
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Re
    Bonjour DeaD78, cafeine

    Pour DeaD78 :
    Cela fonctionne, pourtant j'avais essayé la solution que tu m'indiques dans ton dernier message, mais mal certainement (un espace en moins ou en trop....).

    Pour cafeine :
    J'ai essayé avec IE, mais comme la page se situe derrière une login+MDP, rien à faire. J'ai bien tenté avec ton exemple de la FAQ, mais je n'arrive pas à simuler le click pour la connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ....
    'connexion
         Set DOCelement = IEdoc.forms(0)
         DOCelement.submit
    Bien que mon login+MDP soit enregistré (se souvenir) pour ce site, IE ne me reconnaît pas, par contre Firefox oui. C'est pour cela que j'avais opté pour Firefox.

    Pour une autre manip sur un autre site je passe par IE.

    Je vais me documenter sur Winsock, merci.

    Merci à vous

    Eric

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

Discussions similaires

  1. Evènement sur le body lors de la fermeture d'une fenêtre
    Par Yaz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/09/2005, 17h54
  2. Exécuter une action à la fermeture d'une fenêtre
    Par wwave dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 28/07/2005, 15h15
  3. Fermeture d'une fenêtre .dos
    Par VirginieGE dans le forum Windows
    Réponses: 2
    Dernier message: 03/06/2005, 13h56
  4. executer une fonction à la fermeture d'une fenêtre
    Par Oluha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/02/2005, 09h46
  5. Arrêter un ttmt en cours, lors de la fermeture d'une fenêtre
    Par teska dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/12/2004, 14h08

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