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 :

Soucis avec WScript.Shell.AppActivate


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 31
    Points : 29
    Points
    29
    Par défaut Soucis avec WScript.Shell.AppActivate
    Bonjour à tous,
    Premièrement, ceci est mon premier post sur ce forum donc désolé si je fais une ou plusieurs erreurs.

    J'ai eu beau chercher un peu partout sur le net, je suis bloqué face à un problème concernant une gestion des erreurs via un script VBS.

    Le contexte :
    Ma société utilise différents users de test (avec différents droits) pour tester les régressions sur nos applications.
    Cependant, certains sont utilisés une fois par an/décennie.
    De ce fait, beaucoup sont automatiquement désactivés (1mois d'inactivité = en prison).
    J'ai pour mission de refaire fonctionner un script qui lance la connexion de tous nos users sur nos environnements afin d'être tranquille avec ça.

    Le problème :
    Le script existe et il fonctionne bien sauf pour la partie gestion des erreurs.
    Pour faire court, le script ouvre une fenêtre windows et regarde le titre de la page.
    Si ce n'est pas celui attendu, il sort en nous insultant.
    Or depuis notre passage à Windows 7, cette partie ne fonctionne plus.

    Le code :
    Voici la partie qui pose problème, je vous évite la boucle et les différents SendKeys qui fonctionnent bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set script = CreateObject("WScript.Shell")
    script.Run "iexplore.exe https://www.toto.com"
     
    If Not script.AppActivate("Le titre de Toto - Internet Explorer") Then
        MsgBox "La page n'est pas celle attendue"
        WScript.Quit
    End If
    Je n'ai retiré aucune ligne entre le Run et le test.
    La condition est vérifiée à chaque reprise, même si la fenêtre porte le bon nom.
    J'ai eu beau essayer plusieurs solutions (avec IE à la fin, sans IE, titre un peu différent, avec/sans espace ...), rien n'y fait.

    Si quelqu'un a une idée, je suis preneur.

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Bonjour et BIENVENU sur DVP;

    Et si tu ajoutes une temporisation, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set script = CreateObject("WScript.Shell") 
    script.Run "iexplore.exe https://www.toto.com"
    Wscript.Sleep 1000 ' temporisation d'une seconde
     
    If Not script.AppActivate("Le titre de Toto - Internet Explorer") Then
        MsgBox "La page n'est pas celle attendue"
        WScript.Quit
    End If
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    En fait, j'ai déjà essayé cela avec une temporisation de 10 secondes.
    Autant te dire que la page est complètement chargée.

    Malheureusement, le script ne me détecte toujours pas la fenêtre.

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Est-ce que cela donne quelque chose de positif si on remplace le titre de la fenêtre par son PID ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set script = CreateObject("WScript.Shell")
    Set  oExec = script.Exec("iexplore.exe https://www.toto.com")
    Wscript.Sleep  10000
    If Not script.AppActivate(oExec.ProcessID) Then
        MsgBox "La page  n'est pas celle attendue"
        WScript.Quit
    End If
    [EDIT] Désolé pour l'oubli :
    Dans la ligne de commande(ou paramètre) de de la méthode Exec, il faut mettre le chemin complet de iexplore.exe sinon message d'erreur : Fichier introuvable.
    J'ai testé avec la page courante et cela fonctionne, espérons qu'il en soit de même sur ta machine; voici le code de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set script =  CreateObject("WScript.Shell")
    Set oExec = script.Exec("C:\Program Files\Internet Explorer\iexplore.exe http://www.developpez.net/forums/d1599498/autres-langages/general-visual-basic-6-vbscript/vbscript/soucis-wscript-shell-appactivate/#post8725415")
    Wscript.Sleep  20000
    If Not script.AppActivate(oExec.ProcessID) Then
        MsgBox "La page  n'est pas celle attendue"
        WScript.Quit
    Else 
      MsgBox "Page  trouvée"
      Wscript.Quit 
    End If
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Désolé mais j'ai du mal expliquer mon problème.

    On charge une page et là deux options :
    -soit aucun utilisateur n'est identifié et on nous propose la page de login (celle que je veux).
    -soit un utilisateur est identifié et on arrive directement sur le portail (auquel cas, ma série de test sera faux).

    Les titres des deux pages sont différents, il faut donc que je regarde le nom de la fenêtre.
    Il m'est impossible de passer par l'ID du processus :quelque soit la page, le numéro sera identique.

  6. #6
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 078
    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 078
    Points : 17 053
    Points
    17 053
    Par défaut
    Salut Jbwils et l_autodidacte

    Une autre approche peut être que....
    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
    'Set script = CreateObject("WScript.Shell")
    Set script = CreateObject("InternetExplorer.Application")
    'script.Run "iexplore.exe https://www.toto.com"
    script.navigate "https://www.toto.com"
    'If Not script.AppActivate("Le titre de Toto - Internet Explorer") Then
    Wscript.Sleep 1000 ' temporisation d'une seconde
    If script.LocationName <> "https://www.toto.com" Then
        MsgBox script.LocationName & vbnewline & script.locationUrl, vbCritical, "La page n'est pas celle attendue"
        Set script = nothing
        WScript.Quit
        Else
        script.Visible = True
        MsgBox script.LocationName & vbnewline & script.locationUrl,vbInformation, "La page a été trouvée"
    End If
    Set script = nothing
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Salut ProgElecT & Jbwils

    La ligne 7 devrait(peut-être) être If script.LocationUrl <> "https://www.toto.com" Then
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur étude
    Inscrit en
    Novembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur étude

    Informations forums :
    Inscription : Novembre 2016
    Messages : 50
    Points : 52
    Points
    52
    Par défaut
    Est-ce que le problème a été résolu?

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

Discussions similaires

  1. CreateObject("WScript.Shell").Run avec une variable
    Par pol2095 dans le forum VBScript
    Réponses: 5
    Dernier message: 21/07/2015, 21h24
  2. Probleme avec WScript.Shell"
    Par dedein84 dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2009, 10h24
  3. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

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