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

VBScript Discussion :

Scripter IE7 pour ouvrir plusieurs url dans des onglets


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Octobre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 12
    Par défaut Scripter IE7 pour ouvrir plusieurs url dans des onglets
    Bonjour à tous,

    Ouvrir quelques "internet.explorer" sur plusieurs url, je sais faire. Mais c'est très moche et je me demandais s'il y avait un moyen de scripter proprement ie7 pour ouvrir les differentes url dans des onglets d'une seule instance d'ie7. La littérature est peu abondante sur ce sujet, voire très décourageante ...

    Peut-être une astuce sur le registre ?
    Une fonction cachée de l'objet internet.explorer ?

  2. #2
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    Salut,

    ca m'interesse aussi, j'ai cherché sans succès.

    A+

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 12
    Par défaut
    Je me demande si l'astuce ne consisterait pas à bidouiller le registre comme suit :

    1. Sauvegarder la clé HKCU\Software\Microsoft\Internet Explorer\Main\Secondary Start Pages ou se trouve la page de démarrage
    2. Modifier cette clé pour y mettre les pages désirées
    3. Demarrer IE7
    4. Remettre la valeur initiale de la clé

    C'est faisable ?
    (((edit : je teste)))
    (((redit: c'est un peu plus compliqué)))

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je ne connais pas grand chose à la manipulation d'IE, par contre je sais manipuler la BDR en VBS, et j'ai même des bouts de scripts tout près.
    N'hésite pas à poster si tu as des difficultés sur cette partie.

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 12
    Par défaut
    Merci de ta proposition d'aide : je veux bien savoir comment tester l'existence d'une Value dans la KeyPath, parce que là j'ai un petit souci quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Set oReg=GetObject("winmgmts:\\.\root\default:StdRegProv")
    KeyPath = "SOFTWARE\Microsoft\Internet Explorer"
    ValName = "Secondary Start Pages"
     
    oReg.GetMultiStringValue HKEY_CURRENT_USER, KeyPath, ValName, OldValues
    msgbox UBound( OldValues )
    j'ai un "Type incompatible UBound" qui m'énerve les nerfs
    je peux pas compter le nombre d'éléments de la multistring pour voir si c'est 0

    Je m'explique : Quand on change la page de démarrage d'IE, si il n'y a qu'un lien, il y a une value Start Page, sinon il y a une Value de nom Secondary Start Pages (et plus de StartPage). Donc il faut différencier le traitement :

    si MultiPage alors
    memoriser et changer secondary, lancer ie (pas trop loin), restaurer secondary
    sinon
    memoriser et detruire startpage, creer secondary, lancer ie, detruire secondary, restaurer startpage
    fin si
    finsi

    >>>edit : ah m*rde, j'ai oublié \Main dans le Path
    >>>re-edit : j'y suis presque

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    bah ton code me semble bon, mais j'aurais quand même fait un dim OldValues pour être propre ^^

    Récup une autre valeur de la même clé et qui n'est pas en mlulti et affiche là.
    Si tu y arrives c'est que tu es dans le bon path.

    En général ton erreur arrive lorsque la variable n'a pas de valeur, et ce qui est le cas si to chemin vers la clé est mauvais.

    Dans regedit fait un clique droit sur un dossier et fait copier le nom de la clé, tu obtiens par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_CURRENT_CONFIG\System\CurrentControlSet\Enum\PCI
    Plus simple pour ne pas se tromper dans le chemin

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 12
    Par défaut
    Je retire le "Résolu" car malgré mes tests sur différentes valeurs pour la fonction sleep(), je n'arrive pas à ouvrir toujours les 4 documents que je veux. De plus IE7 insère en premier onglet la page d'accueil de msn, ce dont je me moque éperdument.

    Comment être sûr que la mise à jour de la BdR est faite avant le lancement de ie7 ?
    Comment empêcher msn ?

    Mes neurones sont à court d'idées

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Comment être sûr que la mise à jour de la BdR est faite avant le lancement de ie7 ?
    Tu lis les clés en question avant le lancement d'IE7 et tu verifies leurs valeurs ?

    Comment empêcher msn ?
    Peut être est ce du à l'odre des pages dans la clé.

  9. #9
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    Salut,

    partir dans des modifs de base de registre pour manipuler les onglets d'IE7, il y a forcément une autre solution.
    J'ai pas mal géléré pour trouver qquechose, voici une compile de ce que j'ai trouvé :

    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
     
    Set objShell = CreateObject("Shell.Application")
    Set objShellWindows = objShell.Windows
     
    If objShellWindows.Count = 0 Then
        Msgbox "No browser windows are open."
        Wscript.Quit
    Else
        strURL = "http://www.google.fr"
        Set objIE = objShellWindows.Item()
        objIE.Navigate(strURL)
        strURL = "http://www.yahoo.fr"
     
        objIE.Navigate(strURL)
        strURL = "http://www.lycos.fr"
     
        objIE.Navigate(strURL)    
    End If
    Ca n'a pas l'air d'etre trop mal sauf que je n'ai pas trouvé comment dire "va sur l'onglet N°2" je pensai faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objIE = objShellWindows.Item(2)
    , mais ca n'a pas l'air de fonctionner.

    En tout cas , fonctionne et retourne le nombre total d'onglets ouverts moins 1.
    je repost si j'ai trouvé du neuf.

    A++

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 12
    Par défaut
    merci, je vais regarder dès que j'ai un (bon) moment.

  11. #11
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    J'ai essayè ton code RadPAT..

    mais chez moi il ouvre une fenêtre par page....

    j'ai pas trouvé de solution ... mais j'ai une autre piste à proposer .. l'utilisation de l'argument Flag de la procédure Navigate2 avec comme valeur : navOpenInNewTab ..: 0x800 ..

    le seul truc et que si cela fonctionne en VB6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set IE = CreateObject("InternetExplorer.Application")
     
    IE.Visible = True
    flag = CLng(&H800)
     
    IE.Navigate2 "www.google.fr"
    IE.Navigate2 "www.Yahoo.com", flag
    ce n'est pas concluant en VBScript, après modification de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set IE = Wscript.CreateObject("InternetExplorer.Application")
    ..

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/07/2015, 11h32
  2. Réponses: 1
    Dernier message: 16/05/2014, 16h38
  3. Ouvrir plusieurs liens dans un onglet
    Par keokaz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/03/2014, 08h24
  4. Réponses: 1
    Dernier message: 04/02/2010, 20h41
  5. [AC-2007] Ouvrir plusieurs images dans des fenêtres distinctes
    Par al_bert dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/08/2009, 16h28

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