j'essaye de travailler sur une collection d'objet (liste des lecteurs de
cdrom) directement avec un indice, sans utiliser une boucle 'for each',
mais je n'arrive pas à trouver la syntaxe pour accéder directement au
premier objet. Pour l'instant j'en suis la:
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
F. Dunoyer [MVP]
Bonjour,
j'essaye de travailler sur une collection d'objet (liste des lecteurs de cdrom) directement avec un indice, sans utiliser une boucle 'for each', mais je n'arrive pas à trouver la syntaxe pour accéder directement au premier objet. Pour l'instant j'en suis la:
------------------------------------------- strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive") wscript.echo "Nombre de lecteurs de cdroms: " & colitems.count set lecteur = colItems.Item(1) wscript.echo "1er lecteur: " & lecteur.Drive ------------------------------------------- merci Thierry
Sans être un expert du VB script, il me semble que le principe meme des collections c'est de ne pouvoir être gérées que par les boucles for each/next
-- François Dunoyer [MVP Windows Server / Security] Jours après jours avec Longhorn Server http://fds.mvps.org/LH/index.htm
Bonjour,
j'essaye de travailler sur une collection d'objet (liste des lecteurs de
cdrom) directement avec un indice, sans utiliser une boucle 'for each', mais
je n'arrive pas à trouver la syntaxe pour accéder directement au premier
objet. Pour l'instant j'en suis la:
-------------------------------------------
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")
wscript.echo "Nombre de lecteurs de cdroms: " & colitems.count
set lecteur = colItems.Item(1)
wscript.echo "1er lecteur: " & lecteur.Drive
-------------------------------------------
merci
Thierry
Sans être un expert du VB script, il me semble que le principe meme des
collections c'est de ne pouvoir être gérées que par les boucles for
each/next
--
François Dunoyer [MVP Windows Server / Security]
Jours après jours avec Longhorn Server
http://fds.mvps.org/LH/index.htm
j'essaye de travailler sur une collection d'objet (liste des lecteurs de cdrom) directement avec un indice, sans utiliser une boucle 'for each', mais je n'arrive pas à trouver la syntaxe pour accéder directement au premier objet. Pour l'instant j'en suis la:
------------------------------------------- strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive") wscript.echo "Nombre de lecteurs de cdroms: " & colitems.count set lecteur = colItems.Item(1) wscript.echo "1er lecteur: " & lecteur.Drive ------------------------------------------- merci Thierry
Sans être un expert du VB script, il me semble que le principe meme des collections c'est de ne pouvoir être gérées que par les boucles for each/next
-- François Dunoyer [MVP Windows Server / Security] Jours après jours avec Longhorn Server http://fds.mvps.org/LH/index.htm
Th.A.C
Sans être un expert du VB script, il me semble que le principe meme des collections c'est de ne pouvoir être gérées que par les boucles for each/next
j'en avais bien peur... ca va alourdir bien inutilement mon script, tant pis...
merci pour ta réponse :-)
Sans être un expert du VB script, il me semble que le principe meme des
collections c'est de ne pouvoir être gérées que par les boucles for
each/next
j'en avais bien peur...
ca va alourdir bien inutilement mon script, tant pis...
Sans être un expert du VB script, il me semble que le principe meme des collections c'est de ne pouvoir être gérées que par les boucles for each/next
j'en avais bien peur... ca va alourdir bien inutilement mon script, tant pis...
merci pour ta réponse :-)
Gilles LAURENT
"Th.A.C" a écrit dans le message de news:% | Bonjour,
Bonjour,
| j'essaye de travailler sur une collection d'objet (liste des lecteurs | de cdrom) directement avec un indice, sans utiliser une boucle 'for | each', mais je n'arrive pas à trouver la syntaxe pour accéder | directement au premier objet. Pour l'instant j'en suis la: | | ------------------------------------------- | strComputer = "." | Set objWMIService = GetObject("winmgmts:" _ | & "{impersonationLevel=impersonate}!" & strComputer & | "rootcimv2") | | Set colItems = objWMIService.ExecQuery("Select * from | Win32_CDROMDrive") | | wscript.echo "Nombre de lecteurs de cdroms: " & colitems.count | set lecteur = colItems.Item(1) | wscript.echo "1er lecteur: " & lecteur.Drive | ------------------------------------------- | | merci | Thierry
WMI n'implémente que l'interface IEnumVariant. De ce fait, pour extraire un élément d'une collection WMI, il est nécessaire d'utiliser les boucles For Each / Next. En revanche, si le serveur COM implémente la propriété Item de l'interface ICollection alors l'extraction d'un élement d'une collection peut être réalisée via son index. Ci dessous un exemple avec l'objet Shell.Application :
Set oShApp=CreateObject("Shell.Application") Set colWindows=oshApp.Windows WScript.Echo colWindows(0)
-- Gilles LAURENT http://glsft.free.fr
"Th.A.C" <aenleverraivac@free.fr> a écrit dans le message de
news:%23j7TQ9NkHHA.5024@TK2MSFTNGP06.phx.gbl
| Bonjour,
Bonjour,
| j'essaye de travailler sur une collection d'objet (liste des lecteurs
| de cdrom) directement avec un indice, sans utiliser une boucle 'for
| each', mais je n'arrive pas à trouver la syntaxe pour accéder
| directement au premier objet. Pour l'instant j'en suis la:
|
| -------------------------------------------
| strComputer = "."
| Set objWMIService = GetObject("winmgmts:" _
| & "{impersonationLevel=impersonate}!\" & strComputer &
| "rootcimv2")
|
| Set colItems = objWMIService.ExecQuery("Select * from
| Win32_CDROMDrive")
|
| wscript.echo "Nombre de lecteurs de cdroms: " & colitems.count
| set lecteur = colItems.Item(1)
| wscript.echo "1er lecteur: " & lecteur.Drive
| -------------------------------------------
|
| merci
| Thierry
WMI n'implémente que l'interface IEnumVariant. De ce fait, pour extraire
un élément d'une collection WMI, il est nécessaire d'utiliser les
boucles For Each / Next. En revanche, si le serveur COM implémente la
propriété Item de l'interface ICollection alors l'extraction d'un
élement d'une collection peut être réalisée via son index. Ci dessous un
exemple avec l'objet Shell.Application :
Set oShApp=CreateObject("Shell.Application")
Set colWindows=oshApp.Windows
WScript.Echo colWindows(0)
"Th.A.C" a écrit dans le message de news:% | Bonjour,
Bonjour,
| j'essaye de travailler sur une collection d'objet (liste des lecteurs | de cdrom) directement avec un indice, sans utiliser une boucle 'for | each', mais je n'arrive pas à trouver la syntaxe pour accéder | directement au premier objet. Pour l'instant j'en suis la: | | ------------------------------------------- | strComputer = "." | Set objWMIService = GetObject("winmgmts:" _ | & "{impersonationLevel=impersonate}!" & strComputer & | "rootcimv2") | | Set colItems = objWMIService.ExecQuery("Select * from | Win32_CDROMDrive") | | wscript.echo "Nombre de lecteurs de cdroms: " & colitems.count | set lecteur = colItems.Item(1) | wscript.echo "1er lecteur: " & lecteur.Drive | ------------------------------------------- | | merci | Thierry
WMI n'implémente que l'interface IEnumVariant. De ce fait, pour extraire un élément d'une collection WMI, il est nécessaire d'utiliser les boucles For Each / Next. En revanche, si le serveur COM implémente la propriété Item de l'interface ICollection alors l'extraction d'un élement d'une collection peut être réalisée via son index. Ci dessous un exemple avec l'objet Shell.Application :
Set oShApp=CreateObject("Shell.Application") Set colWindows=oshApp.Windows WScript.Echo colWindows(0)
-- Gilles LAURENT http://glsft.free.fr
F. Dunoyer [MVP]
Th.A.C avait soumis l'idée :
Sans être un expert du VB script, il me semble que le principe meme des collections c'est de ne pouvoir être gérées que par les boucles for each/next
j'en avais bien peur... ca va alourdir bien inutilement mon script, tant pis...
merci pour ta réponse :-)
A moins que qelqu'un soit espiré ? Sinon tu peux toujours lire ta collection dans un tableau et utiliser le tableau pour les acces suivants.
-- François Dunoyer [MVP Windows Server / Security] Jours après jours avec Longhorn Server http://fds.mvps.org/LH/index.htm
Th.A.C avait soumis l'idée :
Sans être un expert du VB script, il me semble que le principe meme des
collections c'est de ne pouvoir être gérées que par les boucles for
each/next
j'en avais bien peur...
ca va alourdir bien inutilement mon script, tant pis...
merci pour ta réponse :-)
A moins que qelqu'un soit espiré ?
Sinon tu peux toujours lire ta collection dans un tableau et utiliser
le tableau pour les acces suivants.
--
François Dunoyer [MVP Windows Server / Security]
Jours après jours avec Longhorn Server
http://fds.mvps.org/LH/index.htm
Sans être un expert du VB script, il me semble que le principe meme des collections c'est de ne pouvoir être gérées que par les boucles for each/next
j'en avais bien peur... ca va alourdir bien inutilement mon script, tant pis...
merci pour ta réponse :-)
A moins que qelqu'un soit espiré ? Sinon tu peux toujours lire ta collection dans un tableau et utiliser le tableau pour les acces suivants.
-- François Dunoyer [MVP Windows Server / Security] Jours après jours avec Longhorn Server http://fds.mvps.org/LH/index.htm
Th.A.C
WMI n'implémente que l'interface IEnumVariant. De ce fait, pour extraire un élément d'une collection WMI, il est nécessaire d'utiliser les boucles For Each / Next. En revanche, si le serveur COM implémente la propriété Item de l'interface ICollection alors l'extraction d'un élement d'une collection peut être réalisée via son index. Ci dessous un exemple avec l'objet Shell.Application :
Set oShApp=CreateObject("Shell.Application") Set colWindows=oshApp.Windows WScript.Echo colWindows(0)
Merci, je comprend mieux pourquoi ca ne marchait pas :-)
WMI n'implémente que l'interface IEnumVariant. De ce fait, pour extraire
un élément d'une collection WMI, il est nécessaire d'utiliser les
boucles For Each / Next. En revanche, si le serveur COM implémente la
propriété Item de l'interface ICollection alors l'extraction d'un
élement d'une collection peut être réalisée via son index. Ci dessous un
exemple avec l'objet Shell.Application :
Set oShApp=CreateObject("Shell.Application")
Set colWindows=oshApp.Windows
WScript.Echo colWindows(0)
Merci, je comprend mieux pourquoi ca ne marchait pas :-)
WMI n'implémente que l'interface IEnumVariant. De ce fait, pour extraire un élément d'une collection WMI, il est nécessaire d'utiliser les boucles For Each / Next. En revanche, si le serveur COM implémente la propriété Item de l'interface ICollection alors l'extraction d'un élement d'une collection peut être réalisée via son index. Ci dessous un exemple avec l'objet Shell.Application :
Set oShApp=CreateObject("Shell.Application") Set colWindows=oshApp.Windows WScript.Echo colWindows(0)
Merci, je comprend mieux pourquoi ca ne marchait pas :-)
Gilles LAURENT
"Th.A.C" a écrit dans le message de news:% || || WMI n'implémente que l'interface IEnumVariant. De ce fait, pour || extraire un élément d'une collection WMI, il est nécessaire || d'utiliser les boucles For Each / Next. En revanche, si le serveur || COM implémente la propriété Item de l'interface ICollection alors || l'extraction d'un élement d'une collection peut être réalisée via || son index. Ci dessous un exemple avec l'objet Shell.Application : || || Set oShApp=CreateObject("Shell.Application") || Set colWindows=oshApp.Windows || WScript.Echo colWindows(0) || | | Merci, je comprend mieux pourquoi ca ne marchait pas :-)
En revanche, avec Vista et Longhorn, cette "limitation" est levée grâce à l'introduction de la méthode ItemIndex d'une collection WMI (SWbemObjectSet). Par exemple :
Set oWmi=GetObject("winmgmts:/root/cimv2") Set colDrives=oWmi.ExecQuery("Select * from Win32_CDRomDrive") Set oDrive = colDrives.ItemIndex(0)
-- Gilles LAURENT http://glsft.free.fr
"Th.A.C" <aenleverraivac@free.fr> a écrit dans le message de
news:%23BYrCdPkHHA.4112@TK2MSFTNGP04.phx.gbl
||
|| WMI n'implémente que l'interface IEnumVariant. De ce fait, pour
|| extraire un élément d'une collection WMI, il est nécessaire
|| d'utiliser les boucles For Each / Next. En revanche, si le serveur
|| COM implémente la propriété Item de l'interface ICollection alors
|| l'extraction d'un élement d'une collection peut être réalisée via
|| son index. Ci dessous un exemple avec l'objet Shell.Application :
||
|| Set oShApp=CreateObject("Shell.Application")
|| Set colWindows=oshApp.Windows
|| WScript.Echo colWindows(0)
||
|
| Merci, je comprend mieux pourquoi ca ne marchait pas :-)
En revanche, avec Vista et Longhorn, cette "limitation" est levée grâce
à l'introduction de la méthode ItemIndex d'une collection WMI
(SWbemObjectSet). Par exemple :
Set oWmi=GetObject("winmgmts:/root/cimv2")
Set colDrives=oWmi.ExecQuery("Select * from Win32_CDRomDrive")
Set oDrive = colDrives.ItemIndex(0)
"Th.A.C" a écrit dans le message de news:% || || WMI n'implémente que l'interface IEnumVariant. De ce fait, pour || extraire un élément d'une collection WMI, il est nécessaire || d'utiliser les boucles For Each / Next. En revanche, si le serveur || COM implémente la propriété Item de l'interface ICollection alors || l'extraction d'un élement d'une collection peut être réalisée via || son index. Ci dessous un exemple avec l'objet Shell.Application : || || Set oShApp=CreateObject("Shell.Application") || Set colWindows=oshApp.Windows || WScript.Echo colWindows(0) || | | Merci, je comprend mieux pourquoi ca ne marchait pas :-)
En revanche, avec Vista et Longhorn, cette "limitation" est levée grâce à l'introduction de la méthode ItemIndex d'une collection WMI (SWbemObjectSet). Par exemple :
Set oWmi=GetObject("winmgmts:/root/cimv2") Set colDrives=oWmi.ExecQuery("Select * from Win32_CDRomDrive") Set oDrive = colDrives.ItemIndex(0)