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

VB 6 et antérieur Discussion :

recherche Onglet actif de Internet Explorer


Sujet :

VB 6 et antérieur

  1. #1
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 169
    Points
    17 169
    Par défaut recherche Onglet actif de Internet Explorer
    Apres plusieurs semaines de recherches, bidouillages, lectures diverses et variées dans les tutos, sur Google ......

    Je sais retrouver les titres de fenêtres, donc la fenêtre Internet Explorer, les pages correspondant a chaque onglet (ShellWindows.Item(X)), mais , comment trouver l'onglet actif parmi les X onglets.
    La correspondance entre le titre de la fenêtre Internet Explorer et le LocationName pour l'onglet(x) n'étant pas systématiquement identique ou même approchant (des fois sans aucune concordance) et/ou pour le cas d'une URL non valide, impossible de comparer/Liker le titre de la fenêtre et le LocationName.
    Ceci devrait être une procédure de recherche du N° d'onglet, qui me permettra de lancer un nouveau navigate sur l'onglet actif.
    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
    Public Sub RechercheIndex()
    Dim Msg$
    ' refrerences à shdocvw.dll, Microsoft Internet Controls
    Dim IE As New InternetExplorer
    Dim FenetreIE As New ShellWindows
    'enumeration des onglets
    For Each IE In FenetreIE
     On Error Resume Next
     If IE.Type = "Document HTML" Then
      Msg$ = " Nom: " & IE.LocationName & "  |   URL: " & IE.LocationURL
      Stop
     End If
     If Err Then Err.Clear
    Next
    End Sub
    Merci pour le coup de main , j'ai le temps, une réponse pour hier serait apprécié
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Apres plusieurs semaines de recherches, bidouillages, lectures diverses et variées dans les tutos, sur Google ......
    Tu aurais du poser la question ici même, j'ai répondu à cette question hier ou avant hier :
    http://www.developpez.net/forums/sho...d.php?t=538238
    cela t'aurais évité une perte de temps inutile
    Citation Envoyé par ProgElecT Voir le message
    Je sais retrouver les titres de fenêtres, donc la fenêtre Internet Explorer, les pages correspondant a chaque onglet (ShellWindows.Item(X)), mais , comment trouver l'onglet actif parmi les X onglets.
    La correspondance entre le titre de la fenêtre Internet Explorer et le LocationName pour l'onglet(x) n'étant pas systématiquement identique ou même approchant (des fois sans aucune concordance) et/ou pour le cas d'une URL non valide, impossible de comparer/Liker le titre de la fenêtre et le LocationName.
    Ceci devrait être une procédure de recherche du N° d'onglet, qui me permettra de lancer un nouveau navigate sur l'onglet actif.
    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
    Public Sub RechercheIndex()
    Dim Msg$
    ' refrerences à shdocvw.dll, Microsoft Internet Controls
    Dim IE As New InternetExplorer
    Dim FenetreIE As New ShellWindows
    'enumeration des onglets
    For Each IE In FenetreIE
     On Error Resume Next
     If IE.Type = "Document HTML" Then
      Msg$ = " Nom: " & IE.LocationName & "  |   URL: " & IE.LocationURL
      Stop
     End If
     If Err Then Err.Clear
    Next
    End Sub
    Merci pour le coup de main , j'ai le temps, une réponse pour hier serait apprécié
    Je n'utilise pas IE7 mais tu devrais orienter ta recherche sur ShellWindowsClass GetEnumerator et Current.

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 169
    Points
    17 169
    Par défaut
    Merci DarkVader pour les sujétions, surtout les quelques mots ShellWindowsClass GetEnumerator et Current, je vais voir sa.

    Pour le lien du post proposé, j’avais bien sûr regardé, car je lis toutes les discussions du forum.
    Je connaissais cette façon de procéder, mais cela ne permet pas de trouver l’onglet ACTIF.

    En résumé, j’ai un Combo qui contient des URLs, l’utilisateur, par des OptionButons choisi soit d’ouvrire dans une nouvelle fenêtre, soit utiliser la fenêtre existante et là un nouveau choix possible, dans un nouvel onglet ou dans l'onglet actif.
    Voici la procédure du Combo
    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
    Private Sub ComboUrls_Click()
    If Option1(0).Value = True Then 'Utiliser la fenêtre internet en cours
     If Option2(1).Value = True Then
      'Dans l'onglet actif
      'au lieux de 0,trouver l'onglet actif (de 0 à FenetreIE.Count-1)
      Set IE = FenetreIE.Item(0)
      IE.Navigate ComboUrls.List(ComboUrls.ListIndex)
      Else
      'dans un nouvel onglet
      IE.Navigate ComboUrls.List(ComboUrls.ListIndex), CLng(&H800)
     End If
     Else
     'Ouvrir dans une nouvelle fenêtre
     IE.Navigate ComboUrls.List(ComboUrls.ListIndex)
     Option1(0).Value = True: Option1(0).Enabled = True
    End If
    IE.Visible = True
    NbrFenetreWeeb = FenetreIE.Count
    Me.Caption = NbrFenetreWeeb & " " & IE.LocationName & " - Packard Bell"
    End Sub
    Et, en prime (j'ai galèré pour que sa fonctionne correctement), la procedure de sortie du programme qui permet de gérer les fenêtres d’exploration.
    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
    Private Sub Form_Unload(Cancel As Integer)
    Me.Visible = False
    If FenetreIE.Count >= 1 Then
     ReponSe% = MsgBox("Fermer les fenêtres et onglets INTERNET ?", vbYesNo)
     If ReponSe% = vbYes Then
      ReponSe% = MsgBox("Voulez-vous confirmer pour chaque fenêtres et onglets INTERNET ?", vbYesNo)
      For T = FenetreIE.Count - 1 To 0 Step -1
       Set IE = FenetreIE.Item(T)
       On Error Resume Next
       IE.Visible = True
       If ReponSe% = vbYes Then 'resultat OUI de "Voulez-vous confirmer..."
        ConfReponSe% = MsgBox("Fermer " & IE.LocationName & "    URL: " & IE.LocationURL & "?", vbYesNo + vbMsgBoxSetForeground)
        If ConfReponSe% = vbYes Then IE.Quit: Set IE = Nothing
        Else
        IE.Quit: Set IE = Nothing 'ferme sans confirmation
       End If
       If Err Then Err.Clear
      Next T
     End If
    End If
    On Error Resume Next
    Set FenetreIE = Nothing
    If Err Then Err.Clear
    End Sub
    Comme je n’ai pas trop de temps, une réponse pour le 1 Mai 2009 me conviendrait bien.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/08/2011, 16h41
  2. Réponses: 2
    Dernier message: 26/09/2007, 11h43
  3. Internet Explorer et recherche google
    Par SpaceFrog dans le forum IE
    Réponses: 4
    Dernier message: 29/06/2006, 16h20
  4. Réponses: 5
    Dernier message: 16/03/2006, 18h58
  5. Internet Explorer a restreint l'affichage du contenu actif!
    Par Laurent_g42 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/08/2005, 19h24

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