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 :

Tableau et déclaration/type


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut Tableau et déclaration/type
    Salut à tous,

    J'ai encore besoin de vos lumières pour une ou deux questions sur la déclaration des tableaux en vbs

    Voila mon script:
    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
     
    Dim objWMIService, colListOfServices, matrice, test
     
    matrice = Array("SystemName", "ServiceName", "SystemType")
    'affiche la donnée de mon tableau
    test = msgbox(matrice(2))
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colListOfServices = objWMIService.ExecQuery _
            ("Select * from Win32_Service")
     
    For each objService in colListOfServices
     
          ' Probleme de déclaration !!!!!!!!!!!!!!!!!!!!!!!!
    	test2 = msgbox(objService.matrice(2))
    next
    En fait j'aimerais passer une variable stocké dans mon tableau en commande pour l'objet objService, exemple: objService.matrice(2) qui devrait me faire la commande objService.SystemType

    J'obtiens une erreur car je pense que mon tableau est mal déclaré

    Quelqu'un aurait une idée ??

    Merci à tous !!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    Je n'arrive pas à déclarer mon tableau avec des objets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim matrice(2) as object
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    matrice = Array("SystemName", "ServiceName", "SystemType") as object
    Aucune de ces 2 lignes ne fonctionnent
    ERROR : Expected end of statement

  3. #3
    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

    En VBScript on ne type pas les variables.
    :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 ← ← 👈

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    Donc impossible de mettre des commandes dans un tableau (exemple: objService.name) et d'utiliser cette ligne du tableau plus loin dans le programme ??

  5. #5
    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,
    c'est ton approche du wmi qui n'est pas correcte
    ta requête wmi te renvoie déjà une collection que tu énumères dans la boucle for...each
    pourquoi vouloir utiliser un tableau ?
    tu trouveras ici la liste de toutes les propriétés et méthodes
    de l'objet Win32_Service dont l'instance dans ton script est objService
    par ailleurs, il n'est pas possible de créer une classe dérivée de Win32_Service qui ajouterait de
    nouvelles propriétés persos comme SystemType ou ServiceName car vbs a un support partiel de la poo et ne gère pas l'héritage
    en revanche, ServiceType ou SystemName existent déjà
    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

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    Bonjour,

    En fait j'utilise les commandes suivantes:
    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
     
    objExcel.Cells(L, C).Value = objservice.SystemName
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.Name
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.ServiceType
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.State
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.ExitCode
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.ProcessID
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.AcceptPause
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.AcceptStop
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.Caption
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.Description
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.DesktopInteract
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.DisplayName
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.ErrorControl
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.PathName
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.Started
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.StartMode
    	C= C +1
    	objExcel.Cells(L, C).Value = objservice.StartName
    En fait, j'aimerais alléger le code "objExcel.Cells(L, C).Value = objservice." qui est toujours le meme..

    J'avais idée qu'avec un tableau je pourrais faire: "objExcel.Cells(L, C).Value = objservice.monTableau(premiere valeur+1)" avec une sorte d'incrémentation de la valeur du tableau exemple : premiere case du tableau = SystemName, la seconde = ServiceType, etc..

    Je suis ouvert a tte autre proposition pour alléger ceci, si quelqu'un a une idée je suis preneur..

    Merci à tous

Discussions similaires

  1. [Web Service][SOAP] Tableau php et type complexe ?
    Par tintin72 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 18/06/2007, 11h31
  2. Trier un tableau de plusieurs type de classes.
    Par storm_2000 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 14/01/2007, 15h50
  3. tableau dynamique de type void *
    Par Pirion dans le forum C
    Réponses: 7
    Dernier message: 18/11/2006, 12h34
  4. Tableau dynamique - 2 types
    Par _ChToM_ dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 03/10/2006, 18h51
  5. Tableau de 2 types differents
    Par The_Undertaker dans le forum C++
    Réponses: 5
    Dernier message: 21/10/2005, 18h39

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