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 :

Lancement d'une application avec paramètres et avec Login et mot de passe


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Par défaut Lancement d'une application avec paramètres et avec Login et mot de passe
    Bonjour,

    Je souhaiterai lancer une application dont l'exécutable conporte des paramètres. De plus, lors de l'affichage de la fenêtre d'authentification, il faudrait que le login et le mot de passe soit renseigner automatiquement.

    J'ai essayer le script vbs ci-après mais seul le lancement de l'application fonctionne avec les paramètres. En revanche, le login et mot de passe ne sont pas renseignés dans les champs de la fenêtre.
    Pour information, le lancement de la fenêtre d'authentification met environ 3 minutes à s'afficher. Aussi, sur mon poste, j'ai d'autres applications en cours d'exécution, donc, il faut que le script renseigne bien le login et mot de passe dans la bonne fenêtre de l'application (et non dans une autre application).

    Contenu du script VBS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run """C:\Program Files (x86)\XXXXX\YYYY.exe"""
     
    Do
    WScript.Sleep 1000
    bFound = WshShell.AppActivate("C:\Program Files (x86)\XXXXX\YYYY.exe")
    Loop Until bFound
    WshShell.SendKeys "ADMIN"
    WScript.Sleep 500
    WshShell.SendKeys "{TAB}"
    WScript.Sleep 500
    WshShell.SendKeys "password"
    WScript.Sleep 500
    WshShell.SendKeys "{ENTER}"

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut, bienvenue sur DVP

    Ne serait il pas possible, suivant le type d'executable, de mettre les paramètres dans la ligne du run ?
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.Run """C:\Program Files (x86)\XXXXX\YYYY.exe log=ADMIN,psw=password"""
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Par défaut réponse
    Bonjour,

    Non cela ne fonctionne malheurement pas.

    Cdt,
    Yannick

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Re

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Function Proccess(nomfichier)
    dim objWMIService
    dim ProcessEncours
    dim strComputer
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set ProcessEncours = objWMIService.ExecQuery ("Select name from Win32_Process where name ='" & nomfichier & "'")
    Set objWMIService = NotHing
     
    If ProcessEncours.Count <> 0 Then Proccess = True Else Proccess = False
     
    Set ProcessEncours = NotHing
     
    End Function
     
    Dim WshShell, oExec, ChemExec, NameExec
     
    ChemExec = "C:\Program Files (x86)\Microsoft Visual Studio\VB98\"
    NameExec = "VB6.EXE"
    Set WshShell = CreateObject("WScript.Shell")
    Set oExec = WshShell.Exec(ChemExec & NameExec)
    Set oExec = NotHing
     
    Do While Proccess(NameExec) = false 'boucle tant que l’exécutable n'est pas lancer
        Wscript.Sleep 10 'attente de 0.01Sc
    loop
    'msgbox "Encours " & Proccess(NameExec)
              WScript.Sleep 500
             WshShell.AppActivate NameExec
             WScript.Sleep 100
             WshShell.SendKeys "ADMIN"
             WshShell.AppActivate NameExec
             WScript.Sleep 500
             WshShell.SendKeys "{TAB}"
             WshShell.AppActivate NameExec
             WScript.Sleep 500
             WshShell.SendKeys "password"
             WScript.Sleep 500
             WshShell.AppActivate NameExec
             WScript.Sleep 500
             WshShell.SendKeys "{ENTER}"
     
    Do While Proccess(NameExec) = True 'boucle tant que l’exécutable n'est pas terminé/fermé
        Wscript.Sleep 100 'attente de 0.1Sc
    loop
    ' suite à la fin du programme lancé
    msgbox "Encours " & Proccess(NameExec)
    La première boucle Do While ligne 27 à 29, attend que le processus soit actif, en ligne 30 il l'est.
    Donc tu peux mettre ta série de SendKeys à la place du MsgBox ligne 30.
    La deuxième boucle, ligne 45 à 47, ne sert que pour vérifier la fermeture du programme lancé.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Par défaut ne fonctionne pas
    Bonjour,

    En lançant:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Function Proccess(nomfichier)
    dim objWMIService
    dim ProcessEncours
    dim strComputer
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set ProcessEncours = objWMIService.ExecQuery ("Select name from Win32_Process where name ='" &  nomfichier & "'")
    Set objWMIService = NotHing
     
    If ProcessEncours.Count <> 0 Then Proccess = True Else Proccess = False
     
    Set ProcessEncours = NotHing
     
    End Function
     
    Dim WshShell, oExec, ChemExec, NameExec
     
    ChemExec = "C:\Program Files (x86)\XXXXXX\"
    NameExec = "YYYYYY.exe"
    Set WshShell = CreateObject("WScript.Shell")
    Set oExec = WshShell.Exec(ChemExec & NameExec)
    Set oExec = NotHing
     
    Do While Proccess(NameExec) = false 'boucle tant que l’exécutable n'est pas lancer
       Wscript.Sleep 10 'attente de 0.01Sc
    loop
    msgbox "Encours1 " & Proccess(NameExec)
             WScript.Sleep 500
             WshShell.AppActivate NameExec
             WScript.Sleep 100
             WshShell.SendKeys "ADMIN"
             WshShell.AppActivate NameExec
             WScript.Sleep 500
             WshShell.SendKeys "{TAB}"
             WshShell.AppActivate NameExec
             WScript.Sleep 500
             WshShell.SendKeys "password"
             WScript.Sleep 500
             WshShell.AppActivate NameExec
             WScript.Sleep 500
             WshShell.SendKeys "{ENTER}"
     
    Do While Proccess(NameExec) = True 'boucle tant que l’exécutable n'est pas terminé/fermé
        Wscript.Sleep 100 'attente de 0.1Sc
    loop
     suite à la fin du programme lancé
    msgbox "Encours2 " & Proccess(NameExec)
    L'application se lance bien mais sur la fenêtre de login et de mot de passe, rien ne s'écrit. De plus, avant même la fin d'exécution du programme, les 2 msgbox sont affichés. Donc je pense que la boucle qui attend la fin de lancement du programme ne semble pas fonctionné.
    Je vous avoue que je ne sais pas comment déboguer le programme. A quoi sert les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set ProcessEncours = objWMIService.ExecQuery ("Select name from Win32_Process where name ='" &  nomfichier & "'")
    Set objWMIService = NotHing
    ?

    Merci par avance pour votre aide.

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Re

    A chaque exécution d'un programme, windows enregistre dans la base de registre sont lancement.
    La fonction Proccess(nomfichier) interroge cette base, si le nom du programme n'est pas trouvé, la fonction renvoie false, donc la première boucle continu à tourner, et le programme vbscript reste dans cette boucle.
    Si le MsgBox "Encours = True" apparait avant que tu ne le vois à l'écran, c'est que le programme est toujours en cours de chargement mais que windows l'a déjà inscrit dans sa base de registre.
    Là, sous vbscript, je ne sais pas détecter la fin du chargement.
    Citation Envoyé par yannick13007
    la fenêtre d'authentification met environ 3 minutes à s'afficher.
    Essais d'augmenter la tempos en ligne 29 WScript.Sleep 180000 par contre il me semble me rappeler que windows va sortir une fenêtre d'alerte pour te proposer d’arrêter le programme VBScript.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Problème de lancement d'une application d'authentification avec Twitter
    Par L'aigle de Carthage dans le forum Android
    Réponses: 2
    Dernier message: 23/06/2014, 10h10
  2. Lancement d'une application avec des variables
    Par pachtoo dans le forum Android
    Réponses: 3
    Dernier message: 30/05/2011, 17h18
  3. Réponses: 9
    Dernier message: 24/08/2009, 16h32
  4. Problème de lancement d'une application avec JWS
    Par petiteminette44 dans le forum JWS
    Réponses: 1
    Dernier message: 11/08/2008, 14h41
  5. Probleme de lancement d'une application avec SQL
    Par Tigre_82 dans le forum VB.NET
    Réponses: 4
    Dernier message: 08/10/2007, 11h26

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