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

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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
    Points : 2
    Points
    2

    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
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 620
    Points : 10 164
    Points
    10 164

    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"""
    ProgElecT
    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.
    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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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
    Points : 2
    Points
    2

    Par défaut réponse

    Bonjour,

    Non cela ne fonctionne malheurement pas.

    Cdt,
    Yannick

  4. #4
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 620
    Points : 10 164
    Points
    10 164

    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é.
    ProgElecT
    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.
    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.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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
    Points : 2
    Points
    2

    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
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 620
    Points : 10 164
    Points
    10 164

    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.
    ProgElecT
    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.
    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.

  7. #7
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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
    Points : 2
    Points
    2

    Par défaut Un lancement ok mais plusieurs problème restant

    Bonjour,

    J'ai réussi à faire un lancement réussi. J'ai modifié la boucle qui vérifie si l'exe est lancé (false => true) et ca a l'air de mieux fonctionné

    Plusieurs problèmes:

    1- Erreur fatal JAVA: Je constate que très souvent lors du lancement du vbs, j'obtiens le message en PJ.

    2- Le login et mot de passe n'écrivent sur d'autres applications (word, Chrome, Outlook...) avant même la fin de l'exécution du vbs.

    3- la boucle de fin ne me semble pas utile ?!

    Pouvez-vous m'aider svp.
    Images attachées Images attachées  

  8. #8
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 620
    Points : 10 164
    Points
    10 164

    Par défaut

    Citation Envoyé par yannick13007 Voir le message
    Bonjour,
    .....
    Plusieurs problèmes:
    1- Erreur fatal JAVA: Je constate que très souvent lors du lancement du vbs, j'obtiens le message en PJ.
    ......
    JAVA ?????, on est pas en en VBScript
    ProgElecT
    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.
    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.

  9. #9
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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
    Points : 2
    Points
    2

    Par défaut

    L'erreur fatal est lié certainement à l'application elle-meme.
    En revanche, pour les autres problèmes, avez-vous une solution svp ?

  10. #10
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 620
    Points : 10 164
    Points
    10 164

    Par défaut

    Re

    J'ai réussi à faire un lancement réussi. J'ai modifié la boucle qui vérifie si l'exe est lancé (false => true) et ca a l'air de mieux fonctionné
    Tu peux m'en dire plus, mettre le code changé?

    .....
    2- Le login et mot de passe n'écrivent sur d'autres applications (word, Chrome, Outlook...) avant même la fin de l'exécution du vbs.
    3- la boucle de fin ne me semble pas utile ?!
    .....

    Tu veux dire qu'après lancement du programme, la première boucle est tout de suite dépassé? Proccess(NameExec) = Trueavant même de rentrer dans la boucle d'attente?

    En effet, pour ton usage tu peux supprimer la boucle While Proccess(NameExec) = True ainsi que le MsgBox qui suit.
    ProgElecT
    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.
    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.

  11. #11
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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
    Points : 2
    Points
    2

    Par défaut

    Je n'arrive plus à faire fonctionné le vbs.

    Il semble avoir un problème avec cette boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Do While Proccess(NameExec) = false 'boucle tant que l’exécutable n'est pas lancer
       Wscript.Sleep 20000 'attente de 0.01Sc
    loop
    Car le msgbox "Encours1 FAUX " s'affiche avant même que l'application s'ouvre. Comment cela est possible alors que la boucle devrait n'afficher la msgbox qu'après t=20000 ?

  12. #12
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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
    Points : 2
    Points
    2

    Par défaut

    J'ai réussi à refaire fonctionner le vbs.

    Voici comment j'ai modifié la boucle:
    Do While Proccess(NameExec) = true 'boucle tant que l’exécutable n'est pas lancer
    Wscript.Sleep 30000 'attente de 0.01Sc
    loop

    En revanche, j'aurai besoin d'aider pour améliorer le lancement:
    - peut-on ajouter un test au démarrage de l'application pour contrôler le bon lancement sans erreur et de tenter de relancer l'application à 3 reprises maximum si erreur constatée
    - S'assurer que le login et mot de passe s'eécrivent bien dans l'application et non dans d'autres applications déjà ouvertes. Car j'ai encore ce problème où le login et mot de passe sont écrit dans des bloc note ...

    Merci par avance.

  13. #13
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 620
    Points : 10 164
    Points
    10 164

    Par défaut

    En effet il y a problème.

    Pour vérifier si le programme vbscript est cohérent, lancer le gestionnaire windows, ce positionner sur l'onglet Applications, faire en sorte que le gestionnaire soit toujours visible.

    Lancer le vbscript qui lance ton programme (NameExec),
    si le MsgBox "Encours1 FAUX " s'affiche avant même qu'il soit inscrit dans le gestionnaire de tâche windows, là, oui il y a un gros problème.

    Si tu le vois inscrit dans le gestionnaire window mais que le programme n'est pas visible, là il va falloir trouver une astuce pour détecter quand il devient visible, chose qui à priori je ne sais pas faire en vbscript.
    ProgElecT
    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.
    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.

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, 11h10
  2. Lancement d'une application avec des variables
    Par pachtoo dans le forum Android
    Réponses: 3
    Dernier message: 30/05/2011, 18h18
  3. Réponses: 9
    Dernier message: 24/08/2009, 17h32
  4. Problème de lancement d'une application avec JWS
    Par petiteminette44 dans le forum JWS
    Réponses: 1
    Dernier message: 11/08/2008, 15h41
  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, 12h26

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