OVH Cloud OVH Cloud

Le micro est-il un portable?

7 réponses
Avatar
Philippe
Bonjour,

Quelqu'un sait-il s'il existe une API ou une fonction VB6=20
permettant de savoir si le micro o=F9 l'on travaille est un=20
portable?
Merci

7 réponses

Avatar
Stéphane [MS]
Bonjour,

Vous pouvez regarder ce qui a été fait précédemment et disponible dans le
fichier suivant :
http://www.myitforum.com/inc/upload/7870islaptop-wsh-msica.zip

Cdlt
Stéphane

"Philippe" a écrit dans le message de
news: f4d701c3f15d$6c934830$
Bonjour,

Quelqu'un sait-il s'il existe une API ou une fonction VB6
permettant de savoir si le micro où l'on travaille est un
portable?
Merci
Avatar
ng
Bonjour,
Je viens de tester sur un ThinkPad : This is NOT a Labtop... Bizarre je
croyais que c'en été un, me suis fait eu :)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


"Stéphane [MS]" a écrit dans le message de
news:
Bonjour,

Vous pouvez regarder ce qui a été fait précédemment et disponible dans le
fichier suivant :
http://www.myitforum.com/inc/upload/7870islaptop-wsh-msica.zip

Cdlt
Stéphane

"Philippe" a écrit dans le message


de
news: f4d701c3f15d$6c934830$
Bonjour,

Quelqu'un sait-il s'il existe une API ou une fonction VB6
permettant de savoir si le micro où l'on travaille est un
portable?
Merci



Avatar
Clive Lumb
On peut le faire en testant s'il y a une batterie...
Dans les références du projet, ajouter Microsoft WMI Scripting
Créer un form avec un bouton Command1 et un textbox Text1 en multiligne
Puis coller ce qui suit....


Private Sub Command1_Click()
'Enumère les batteries d'un portable
'Ainsi que leur caractéristiques et état de charge
'Ajouter Microsoft WMI Scripting aux référence du projet
'Clive Lumb - Février 2004

Dim MyNamespace As SWbemServices
Dim I As Integer
Dim J As Integer
Dim Valeur As Variant
Dim Temp As Variant
Dim Selected As String
Dim ErrMsg As String
Dim BatteryObj As SWbemObject
Dim BatterySet As SWbemObjectSet
Dim BatteryProperty As SWbemProperty
On Error GoTo 0
Me.Text1.Text = ""
Set MyNamespace = GetObject("winmgmts:") 'Login to rootcimv2
'Enumerate the instances
Set BatterySet = MyNamespace.InstancesOf("Win32_Battery")
Selected = ""
Me.Text1.Text = Me.Text1.Text & "Il y a " & BatterySet.Count & " Batterie(s)
dans ce PC" & vbCrLf
I = 1
DoEvents
For Each BatteryObj In BatterySet
Me.Text1.Text = Me.Text1.Text & "Batterie :" & I & vbCrLf
I = I + 1
'Use the RelPath property of the instance path to display the disk
If Selected = "" Then Selected = BatteryObj.Path_.RelPath
For Each BatteryProperty In BatteryObj.Properties_
Valeur = BatteryProperty.Value
If VarType(Valeur) = 8204 Then
Me.Text1.Text = Me.Text1.Text & " " & BatteryProperty.Name
& " :" & vbCrLf
For J = LBound(Valeur) To UBound(Valeur)
If IsNull(Valeur(J)) Then Temp = "Null" Else Temp Valeur(J)
Me.Text1.Text = Me.Text1.Text & " " & CStr(Temp) &
vbCrLf
Next J
Else
If IsNull(Valeur) Then Valeur = "Null"
Me.Text1.Text = Me.Text1.Text & " " & BatteryProperty.Name
& " : " & CStr(Valeur) & vbCrLf
End If

Next BatteryProperty
Next BatteryObj
DoEvents
Set BatteryObj = Nothing
Set BatterySet = Nothing
Set MyNamespace = Nothing
End Sub




"Philippe" a écrit dans le message de
news:f4d701c3f15d$6c934830$
Bonjour,

Quelqu'un sait-il s'il existe une API ou une fonction VB6
permettant de savoir si le micro où l'on travaille est un
portable?
Merci
Avatar
Stéphane [MS]
Re,

Parmi l'ensemble des tests effectués, aucun n'est fiable à 100%, ni dans un
sens ni dans l'autre : des portables peuvent ne pas être détectés et des
postes fixes apparaître comme des portables. Il n'y a pas de méthode
documentée pour reconaitre un portable. Si vous ètes sur un parc entièrement
gèré, vous pouvez demander à disposer d'un flag sur la base de registre,
mais si devez supporter des PC venant de n'importe où ce sera plus
difficile. Vous pouvez demander confirmation à l'utilisateur de ce que vous
avez cru détecter.

Cdlt
Stéphane

"ng" a écrit dans le message de news:

Bonjour,
Je viens de tester sur un ThinkPad : This is NOT a Labtop... Bizarre je
croyais que c'en été un, me suis fait eu :)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


"Stéphane [MS]" a écrit dans le message de
news:
> Bonjour,
>
> Vous pouvez regarder ce qui a été fait précédemment et disponible dans


le
> fichier suivant :
> http://www.myitforum.com/inc/upload/7870islaptop-wsh-msica.zip
>
> Cdlt
> Stéphane
>
> "Philippe" a écrit dans le message
de
> news: f4d701c3f15d$6c934830$
> Bonjour,
>
> Quelqu'un sait-il s'il existe une API ou une fonction VB6
> permettant de savoir si le micro où l'on travaille est un
> portable?
> Merci
>




Avatar
Clive Lumb
Je viens d'essayer avec la classe WMI Win32_SystemEnlosure où "Chassis Type"
devrait être 8, 9, 10, ou 14 pour un portable, mais cela indique que mon
Samsung est un type 3 "Deskop".

Donc la teste de présence de batterie semble plus sûr... sauf si on a
enelevé la batterie

Clive

"Clive Lumb" a écrit dans le message de
news:%
On peut le faire en testant s'il y a une batterie...
Dans les références du projet, ajouter Microsoft WMI Scripting
Créer un form avec un bouton Command1 et un textbox Text1 en multiligne
Puis coller ce qui suit....


Private Sub Command1_Click()
'Enumère les batteries d'un portable
'Ainsi que leur caractéristiques et état de charge
'Ajouter Microsoft WMI Scripting aux référence du projet
'Clive Lumb - Février 2004

Dim MyNamespace As SWbemServices
Dim I As Integer
Dim J As Integer
Dim Valeur As Variant
Dim Temp As Variant
Dim Selected As String
Dim ErrMsg As String
Dim BatteryObj As SWbemObject
Dim BatterySet As SWbemObjectSet
Dim BatteryProperty As SWbemProperty
On Error GoTo 0
Me.Text1.Text = ""
Set MyNamespace = GetObject("winmgmts:") 'Login to rootcimv2
'Enumerate the instances
Set BatterySet = MyNamespace.InstancesOf("Win32_Battery")
Selected = ""
Me.Text1.Text = Me.Text1.Text & "Il y a " & BatterySet.Count & "


Batterie(s)
dans ce PC" & vbCrLf
I = 1
DoEvents
For Each BatteryObj In BatterySet
Me.Text1.Text = Me.Text1.Text & "Batterie :" & I & vbCrLf
I = I + 1
'Use the RelPath property of the instance path to display the disk
If Selected = "" Then Selected = BatteryObj.Path_.RelPath
For Each BatteryProperty In BatteryObj.Properties_
Valeur = BatteryProperty.Value
If VarType(Valeur) = 8204 Then
Me.Text1.Text = Me.Text1.Text & " " &


BatteryProperty.Name
& " :" & vbCrLf
For J = LBound(Valeur) To UBound(Valeur)
If IsNull(Valeur(J)) Then Temp = "Null" Else Temp > Valeur(J)
Me.Text1.Text = Me.Text1.Text & " " & CStr(Temp) &
vbCrLf
Next J
Else
If IsNull(Valeur) Then Valeur = "Null"
Me.Text1.Text = Me.Text1.Text & " " &


BatteryProperty.Name
& " : " & CStr(Valeur) & vbCrLf
End If

Next BatteryProperty
Next BatteryObj
DoEvents
Set BatteryObj = Nothing
Set BatterySet = Nothing
Set MyNamespace = Nothing
End Sub




"Philippe" a écrit dans le message


de
news:f4d701c3f15d$6c934830$
Bonjour,

Quelqu'un sait-il s'il existe une API ou une fonction VB6
permettant de savoir si le micro où l'on travaille est un
portable?
Merci




Avatar
Philippe
Merci pour vos réponses.
J'obtiens le même problème avec l'API GetSystemPowerStatus
Si l'utilisateur retire la batterie, l'API prend le
portable comme un Desktop.

Seule solution : l'entreprise gère le nom des machines et
crée une différence entre le nom des portables et celui
des postes fixes. Ouf! C'est mon cas.
Avatar
Clive Lumb
J'ai vérifié avec WMI Win32_SystemEnlosure / ChassisType sur d'autres
postes.
Les Dell (chez nous) retournent bien 8 (Portable).
Donc entre la batterie, le chassis et le nom on devrait être à peu près sûr
de détecter un portable...
On pourra aussi chercher la classe Win32_PCMCIAController pour voir s'il y a
un port PCMCIA (bien que c'est possible d'en trouver sur les fixes) et aussi
Win32_InfraredDevice.

Peut-on demander pourquoi tu voudrais detecter les portables ?

Clive

"Philippe" a écrit dans le message de
news:f99d01c3f226$ba4d8f30$
Merci pour vos réponses.
J'obtiens le même problème avec l'API GetSystemPowerStatus
Si l'utilisateur retire la batterie, l'API prend le
portable comme un Desktop.

Seule solution : l'entreprise gère le nom des machines et
crée une différence entre le nom des portables et celui
des postes fixes. Ouf! C'est mon cas.