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

Scripts/Batch Discussion :

Fenêtre IE déja ouverte [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Fenêtre IE déja ouverte
    Bonjour,

    j'ai une web-app écrite en html-javascript qui est ouverte dans internet explorer. Elle contient ces lignes dans le code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    < div id= "monID" >
       < ul li class="maClasse"
         <<li>>
            <a href = "codejs...";>myName</a>
         <</li>>
    ...
    Je voudrais prendre le contrôle de cette fenêtre pour pouvoir cliquer sur l'onglet contenant myName.
    Est-ce qu'il est possible de faire cela avec powershell? Si c'est le cas, connaitriez-vous le code à utiliser, svp?
    Merci d'avance pour vos réponses.
    Arsène

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Avec ce code, je vais sur un lien :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ie = new-object -com internetexplorer.application
    $ie.visible=$true
    $ie.navigate('https://news.google.com/?hl=fr&gl=FR&ceid=FR:fr')
    while($ie.busy) {sleep 10}
    $link = $ie.Document.body.getElementsByClassName('e20EGc') | where-object {$_.innerText -eq 'France'}
    $link.click()

    Avec celui-là, j'ouvre internet explorer avec le raccourci :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    $ie = Start "C:\Users\myName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.Lnk"

    J'aimerai ouvrir internet par le raccourci et ensuite aller sur le lien. Est-ce possible?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    J'ai trouvé la solution.

    Code VBS :

    Code VB : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Option Explicit
    Dim objApp, nIE, oIE, Window
     
    Set objApp = CreateObject("Shell.Application")
    Set oIE = Nothing
     
    For Each Window In objApp.Windows
      If Window = "Internet Explorer" Then
      Set oIE = Window
      End If
    Next
     
    If oIE is Nothing Then
      Call NewIE
      msgbox ("Internet Explorer n'est pas ouvert")
    Else
      Call OpenIE
      msgbox ("Internet Explorer est bien ouvert")
      'TRAITEMENT
    End If
     
    'Internet Explorer is closed.
    Sub NewIE
         Set nIE = CreateObject("InternetExplorer.Application")
         nIE.Navigate ("http://www.youtube.com")
         nIE.Visible = True
    End Sub
     
    'Internet Explorer is already opened.
    Sub OpenIE
         oIE.Navigate2 ("http://www.google.com")
         oIE.Visible = True
    End Sub

    J'ai un dernier problème à résoudre car plusieurs fenêtre d'internet explorer peuvent être ouverte, et chaque fenêtre peut contenir plusieurs onglets d'ouverts.
    Sauriez-vous comment faire, svp, pour tous les passer en revue(code ci-dessus-->TRAITEMENT), et sélectionner l'onglet qui est connecté à telle adresse, par exemple, ou qui contient tel élément?

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tu peux récupérer un objet internetexplorer.application d'une fenêtre Internet Explorer déjà ouverte, je savais pas.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Tu peux récupérer un objet internetexplorer.application d'une fenêtre Internet Explorer déjà ouverte, je savais pas.
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Window In objApp.Windows  
      If Window = "Internet Explorer" Then
          counter+=1 ' nous donne même le nombre de fenêtres d'internet explorer qui sont ouvertes


    La preuve que oui :

    Code VB : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Option Explicit
    Dim objApp, nIE, oIE, Window
    Dim counter
    Set objApp = CreateObject("Shell.Application")
    Set oIE = Nothing
    counter = 0
     
    For Each Window In objApp.Windows
     
      If Window = "Internet Explorer" Then
      counter+=1
      Set oIE = Window
      End If
     
    Next
     
    'msgbox counter
     
    If oIE is Nothing Then
      Call NewIE
      msgbox ("Internet Explorer n'est pas ouvert")
    Else
      Call OpenIE
      msgbox ("Internet Explorer est bien ouvert")
      'DoEvents
      oIE.visible = True 
      'wscript.sleep 1000
      oIE.Document.All.Item("query").Value= "VBS"
      'wscript.sleep 1000
      oIE.Document.all("submit").click
     
    End If
     
    'Internet Explorer is closed.
    Sub NewIE
         Set nIE = CreateObject("InternetExplorer.Application")
         nIE.Navigate ("https://www.developpez.net/forums/f519/general-developpement/programmation-systeme/windows/scripts-batch/")
         nIE.Visible = True
    End Sub
     
    'Internet Explorer is already opened.
    Sub OpenIE
         'oIE.Navigate2 ("http://www.google.com")
         oIE.Visible = True
    End Sub

    Y'a un bug qui se produit quand on est plus sur la page de https://www.developpez.net/forums/f5...scripts-batch/. Mais ça, on peut le corriger par du code. Donc ce que je veux, c'est sélectionner chaque onglet d'internet explorer, et tester si l'Item "query" est présent. Dans mon code, counter m'en donne déjà le nombre.

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ne t'inquiète pas pour la preuve, je l'ai tester moi même bien sur

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Ne t'inquiète pas pour la preuve, je l'ai tester moi même bien sur
    Et pour connaitre l'adresse de la page web ouverte, faut utiliser ce code :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    WScript.Echo oIE.Document.URL

    Y'a plus qu'à faire :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if oIE.Document.URL= "https://www.developpez.net/forums/f519/general-developpement/programmation-systeme/windows/scripts-batch/" Then
                  oIE.Document.All.Item("query").Value= "VBS"
                  wscript.sleep 1000
                  oIE.Document.all("submit").click

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

Discussions similaires

  1. [C#] tester Fenetre déja ouverte?
    Par codez dans le forum Windows Forms
    Réponses: 14
    Dernier message: 28/04/2006, 00h53
  2. Réponses: 7
    Dernier message: 18/04/2006, 19h29
  3. [VB]donner le focus à une application déja ouverte ou fermée
    Par Nicko29 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 21/01/2006, 14h28
  4. Détecter si une fenêtre est déjà ouverte et aller dedans
    Par thierry198 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/11/2005, 17h53
  5. Réponses: 2
    Dernier message: 04/11/2005, 15h50

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