Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment reconnaitre le type de la propriete d'une classe

4 réponses
Avatar
merlin01fr
Bonjour
bonjour

comment reconnaitre le type d'une propriete de classe (en l'occurence ce qui
m'interesse c'est la date) de maniere a lui appliquer un traitement
specifique ?


sous wbemtest elles sont marquées CIM_DATETIME.

cordialement

4 réponses

Avatar
merlin01fr
rebonjour

en complement d'info j'ai bien essayé la methode ci dessous mais il ne me
retourne que la ligne correspondant a la valeur False .

y a t'il une autre solution ?

merci par avance

For each strItem in strClass.properties_

If IsArray(strItem) = True Then _
MaPropriete.WriteLine("La propriete de " & chr(34) & strItem.name &
chr(34) & " est un Tableau") _
End If
If IsDate(strItem) = True Then _
MaPropriete.WriteLine("La propriete de " & chr(34) & strItem.name &
chr(34) & " est une Date") _
End If
If IsEmpty(strItem) = True Then _
MaPropriete.WriteLine("La propriete de " & chr(34) & strItem.name &
chr(34) & " est une variable vide") _
Else _
If IsEmpty(strItem) = False Then _
MaPropriete.WriteLine("La propriete de " & chr(34) & strItem.name &
chr(34) & " est une variable vide non initialisee") _
End If _
End If

Next
Avatar
Jean
Bonjour
bonjour

comment reconnaitre le type d'une propriete de classe (en l'occurence ce qui
m'interesse c'est la date) de maniere a lui appliquer un traitement
specifique ?


sous wbemtest elles sont marquées CIM_DATETIME.

cordialement


A l'aide d'un objet SWbemProperty :

SWbemProperty

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/swbemproperty.asp


par exemple (avec une fonction de conversion CIM_DATE en VT_DATE):

'---8<---
classe="Win32_Process"

For Each propriete In GetObject("winmgmts:"&classe).Properties_
With propriete
If .CIMType1 Then
For Each objet In GetObject("winmgmts:").InstancesOf(classe)
r=r&_
.Name&_
" CIM_DATETIME="&Eval("objet."&.Name)&" | "&_
"
VT_DATE="&CIM_DATETIME_En_VT_DATE(Eval("objet."&.Name))&VBNewLine
Next
End If
End With
Next
WScript.Echo r

Function CIM_DATETIME_En_VT_DATE(quoi)
If Not IsNull(quoi) Then _
CIM_DATETIME_En_VT_DATE=_
CDate(_
Mid(quoi,5,2)&"/"&_
Mid(quoi,7,2)&"/"&_
Left(quoi,4)&" "&_
Mid(quoi,9,2)&":"&_
Mid(quoi,11,2)&":"&_
Mid(quoi,13,2)_
)
End Function
'---8<---

Amicalement,

--
Jean - JMST
Belgium

Avatar
Jean
en complement d'info j'ai bien essayé la methode ci dessous mais il ne me
retourne que la ligne correspondant a la valeur False .


C'est normal ... pour VBScript c'est une chaîne (string) ...

Amicalement,

--
Jean - JMST
Belgium

Avatar
merlin01fr
merci pour ta reponse

je vais eplucher ca dans le detail , ca me permettra certainement d'en
apprendre un peu plus sur ce domaine.

Encore une fois merci

Cordialement