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 :

VBScript - Comportement étrange à l’exécution


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut VBScript - Comportement étrange à l’exécution
    Bonjour à toutes et à tous !

    Je suis actuellement en train de développer un script VBS afin d'accéder aux couches bas niveau en Java, le script est généré et exécuté par le code Java.

    Script VBS (Son but est de chercher la version d'un logiciel dans le registre) :

    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
     
    const HKEY_LOCAL_MACHINE = &H80000002
    strComputer = "."
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"&_
    	strComputer & "\root\default:StdRegProv")
    strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    outFile="C:\Users\######\AppData\Local\Temp\GetVersionSoftware.txt"
    Set objFile = objFSO.CreateTextFile(outFile,True)
    strName = "######################"
    strValueName = "DisplayName"
    strValueVersion = "DisplayVersion"
    strValueSubKey = "InstallProperties"
    If oReg.EnumKey(HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys) = 0 Then
    	For Each subkey In arrSubKeys
    		strKeyPath2 = strKeyPath & "\" & subkey
    		If oReg.EnumKey(HKEY_LOCAL_MACHINE, strKeyPath2, arrSubKeys2) = 0 Then
    		For Each subkey2 In arrSubKeys2
    			If subkey2 = strValueSubKey Then
    			strKeyPathInstallProp = strKeyPath2 & "\" & subkey2
    			oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPathInstallProp, arrValueNames, arrValueTypes
    				If Not IsNull(arrValueNames) Then
    				For I = 0 To UBound(arrValueNames)
    					If arrValueNames(I) = strValueName Then
    					oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPathInstallProp,strValueName,strValue
    						If strValue = strName Then
    						oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPathInstallProp,strValueVersion,strVersion
    						objFile.Write strVersion & vbCrLf
    						objFile.close
    						End if
    					End if
    				Next
    				End if
    			End if
    		Next
    		End if
    	Next
    End if
    (Le nom de la clef a rechercher est volontairement caché)

    Pour l'instant, le résultat est écrit dans un fichier texte pour être lu ensuite, c'est un essai infructueux pour tenter de résoudre le problème que voici :
    Lorsque j'exécute mon programme dans Eclipse, tout se passe bien, les valeurs sont récupérées dans problèmes.

    Par contre, dès que je demande la création du jar (via Maven), celui ci n’exécute pas correctement le script car le fichier de sortie texte reste vide.
    Je n'arrive pas a déterminer la provenance de ce problème...

    Le code d'exécution :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
    class StreamGobbler extends Thread
        {
            InputStream is;
            String type;
     
            StreamGobbler(InputStream is, String type)
            {
                this.is = is;
                this.type = type;
            }
     
            @Override
            public void run()
            {
                try
                {
                    InputStreamReader isr = new InputStreamReader(is);
                    BufferedReader br = new BufferedReader(isr);
                    String line=null;
                    while ( (line = br.readLine()) != null)
                        System.out.println(type + ">" + line);
                    } catch (IOException ioe)
                      {
                        ioe.printStackTrace();
                      }
            }
        }
     
    public class VBSReader
        {
        public static void launchVBS(String vbsDir)
            {
                try
                {
                    String[] cmd = new String[3];
     
                    cmd[0] = "cscript";
                    cmd[1] = vbsDir;
                    cmd[2] = " //logo";
     
                    Runtime rt = Runtime.getRuntime();
                    System.out.println("Execing " + cmd[0] + " " + cmd[1]  + " " + cmd[2]);
                    Process proc = rt.exec(cmd);
     
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
     
                    StreamGobbler errorGobbler = new
                        StreamGobbler(proc.getErrorStream(), "ERROR");
     
                    StreamGobbler outputGobbler = new
                        StreamGobbler(proc.getInputStream(), "OUTPUT");
     
                    errorGobbler.start();
                    outputGobbler.start();
     
                    int exitVal = proc.waitFor();
                    System.out.println("ExitValue: " + exitVal);
                } catch (Throwable t)
                  {
                    t.printStackTrace();
                  }
            }
        }
    Si vous avez des questions ou des demandes d'infos, n'hésitez pas !

    En espérant une quelconque aide de votre part, je ne sais plus vraiment quoi faire....

    Cordialement, et avec tout l'amour du monde

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    peut-être une erreur de rubrique ?
    si ton script récupère bien les valeurs de clé en mode commande mais pas via ton jar,
    c'est qu'il s'agit a priori d'un problème java à soumettre dans le sous-forum prévu à cet effet.
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. [Forms6i] Un IF-ELSIF au comportement étrange
    Par lafouine dans le forum Forms
    Réponses: 11
    Dernier message: 13/09/2005, 15h40
  2. Comportement étrange apres une désinstallation
    Par Sunchaser dans le forum Excel
    Réponses: 4
    Dernier message: 06/08/2005, 19h44
  3. comportement étrange d'une jointure ...
    Par amenis dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 10/02/2005, 21h27
  4. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

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