Divers parametres
Divers parametres
Salut,
je cherche des instructions ou une routine qui permettent d'afficher les parametres de l'ordinateur sur lekel le programme cour.
Exemple : type de carte mere, le proc, le nom de l'ordi, etc...
Je prend tout; meme les parametres les plus farfelus
Thx
je cherche des instructions ou une routine qui permettent d'afficher les parametres de l'ordinateur sur lekel le programme cour.
Exemple : type de carte mere, le proc, le nom de l'ordi, etc...
Je prend tout; meme les parametres les plus farfelus
Thx
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Re: Divers parametres
Pour une première réponse je dirais
PB --> GetEnvironmentVariable(Name$)
wmi/wmic en batch
PowerShell (Get-WmiObject)
mais tout dépend de ce que tu cherches a faire.
autrement tu tapes msinfo32.exe et tu as tout ce que tu veux.
PB --> GetEnvironmentVariable(Name$)
wmi/wmic en batch
PowerShell (Get-WmiObject)
mais tout dépend de ce que tu cherches a faire.
autrement tu tapes msinfo32.exe et tu as tout ce que tu veux.
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
-
- Messages : 43
- Inscription : lun. 22/oct./2018 19:34
- Localisation : Haisnes (62)
Re: Divers parametres
Pour le processeur
Code : Tout sélectionner
Define SI.SYSTEM_INFO
GetSystemInfo_ (@SI)
Debug "Nbr de Processeur :"+SI\dwNumberOfProcessors
Select SI\dwProcessorType
Case 386
Debug "Processeur Intel 386"
Case 486
Debug "Processeur Intel 486"
Case 586
Debug "Processeur Intel Pentium"
Case 2200
Debug "Processeur Intel IA64"
Case 8664
Debug "Processeur AMD x86 64"
EndSelect
Select SI\wProcessorArchitecture
Case 9
Debug "Architecture x64 (AMD or Intel)"
Case 5
Debug "Architecture ARM"
Case 12
Debug "Architecture ARM64"
Case 6
Debug "Architecture Intel Itanium-based"
Case 0
Debug "Architecture x86"
Case $ffff
Debug "Architecture inconnue"
EndSelect
ProgramID = RunProgram("Cmd", "/C WMIC CPU Get Name", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
If ProgramID
While ProgramRunning(ProgramID)
If AvailableProgramOutput(ProgramID)
Output$ + ReadProgramString(ProgramID)
EndIf
Wend
CloseProgram(ProgramID)
If Trim(Output$) <> ""
Debug Output$
EndIf
EndIf
Re: Divers parametres
Bonjour SPH,
si ça peut te satisfaire
si ça peut te satisfaire
Code : Tout sélectionner
;WMIQuery Version 1.00
;
;Pure Basic 4.51, 4.61, 5.00 Beta
;
;Contributor : Andre (2004), DataMiner (2005) ..... others who have tried :)
;Update : falsam (19.09.2012)
;
;Add
;Procedure WMIQuery(WMIReqSql.s, Map WMIMap.s())
;Run a WMI query and retrieve one or all properties of a class in a map
;
;Example
;NewList WMIResult.WMIClass()
;If WMIQuery("Select Manufacturer, Model, SystemType from Win32_ComputerSystem", WMIResult())
; ForEach WMIResult()
; Debug WMIResult()\Property + "=" + WMIResult()\Value
; Next
;EndIf
;WMI constants
#RPC_C_AUTHN_LEVEL_CONNECT = 2
#RPC_C_IMP_LEVEL_IDENTIFY = 2
#EOAC_NONE = 0
#RPC_C_AUTHN_WINNT = 10
#RPC_C_AUTHZ_NONE = 0
#RPC_C_AUTHN_LEVEL_CALL = 3
#RPC_C_IMP_LEVEL_IMPERSONATE = 3
#CLSCTX_INPROC_SERVER = 1
#WBEMFlagReturnImmediately = 16
#wbemFlagForwardOnly = 32
;#WBEM_INFINITE = $FFFFFFFF
#IFlags = #wbemFlagReturnImmediately + #wbemFlagForwardOnly
Structure WMIClass
Property.s
Value.s
EndStructure
Procedure.l ansi2bstr(ansi.s)
Protected Size.l, i.i, tmp.s
;size=MultiByteToWideChar_(#CP_ACP,0,ansi,Len(ansi),"","")
*ansi = AllocateMemory(SizeOf(String))
size=MultiByteToWideChar_(#CP_ACP,0,*ansi,Len(ansi),#Null,#Null)
Dim unicode.w(size)
;MultiByteToWideChar_(#CP_ACP, 0, ansi, Len(ansi), unicode(), size);#CP_ACP
MultiByteToWideChar_(#CP_ACP, 0, *ansi, Len(ansi), unicode(), size);#CP_ACP
For i=0 To size
tmp + Hex(unicode(i),#PB_Unicode)
Next
ProcedureReturn SysAllocString_(@unicode())
EndProcedure
Procedure bstr2string (bstr)
Static result.s
result = PeekS(bstr, -1, #PB_Unicode)
ProcedureReturn @result
EndProcedure
; Interrogate WMI Database
Procedure WMIQuery(WMIReqSql.s, List WMI.WMIClass())
Protected Mem.l
Protected hres.i
Protected loc.IWbemLocator
Protected svc.IWbemServices
Protected pUnk.IUnknown
Protected pEnumerator.IEnumWbemClassObject
Protected pclsObj.IWbemClassObject
Protected uReturn
Protected sf.l
Protected lBound.i, uBound.i, i.i
Protected temp.l, x.Variant, Type.i
Protected Property.s, Val.s
Protected nDim.i, plUbound.i, z.i, rgVar
ClearList(WMI())
; --- Step 1: Initialize COM parameters with a call to CoInitializeEx
CoInitializeEx_(0, #COINIT_MULTITHREADED)
; --- Step 2: Initialize COM process security by calling CoInitializeSecurity.
hres=CoInitializeSecurity_(0, -1,0,0,#RPC_C_AUTHN_LEVEL_CONNECT,#RPC_C_IMP_LEVEL_IDENTIFY,0,#EOAC_NONE,0)
If hres <> 0
MessageRequester("ERROR", "unable to call CoInitializeSecurity", #MB_OK)
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 3: Obtain the initial locator to WMI by calling CoCreateInstance.
hres=CoCreateInstance_(?CLSID_WbemLocator,0,#CLSCTX_INPROC_SERVER,?IID_IWbemLocator,@loc.IWbemLocator)
If hres <> 0
MessageRequester("ERROR", "unable to call CoCreateInstance", #MB_OK)
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 4: Obtain a pointer to IWbemServices for the root\cimv2 namespace on the local computer by calling IWbemLocator::ConnectServer.
;hres=loc\ConnectServer(Ansi2Uni("root\cimv2"),0,0,0,0,0,0,@svc)
If #PB_Compiler_Unicode = 1;we create unicode application
hres=loc\ConnectServer(@"root\cimv2" ,0,0,0,0,0,0,@svc.IWbemServices)
Else; non unicode
hres=loc\ConnectServer(ansi2bstr("root\cimv2"),0,0,0,0,0,0,@svc.IWbemServices)
EndIf
If hres <> 0
MessageRequester("ERROR", "unable to call IWbemLocator::ConnectServer", #MB_OK)
svc\release()
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 5: Set IWbemServices proxy security so the WMI service can impersonate the client by calling CoSetProxyBlanket.
hres=svc\queryinterface(?IID_IUnknown,@pUnk.IUnknown)
hres=CoSetProxyBlanket_(svc,#RPC_C_AUTHN_WINNT,#RPC_C_AUTHZ_NONE,0,#RPC_C_AUTHN_LEVEL_CALL,#RPC_C_IMP_LEVEL_IMPERSONATE,0,#EOAC_NONE)
If hres <> 0
MessageRequester("ERROR", "unable to call CoSetProxyBlanket", #MB_OK)
svc\release()
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
hres=CoSetProxyBlanket_(pUnk,#RPC_C_AUTHN_WINNT,#RPC_C_AUTHZ_NONE,0,#RPC_C_AUTHN_LEVEL_CALL,#RPC_C_IMP_LEVEL_IMPERSONATE,0,#EOAC_NONE)
If hres <> 0
MessageRequester("ERROR", "unable to call CoSetProxyBlanket", #MB_OK)
svc\release()
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
pUnk\release()
; --- Step 6: Use the IWbemServices pointer to make requests of WMI.
;hres=svc\ExecQuery(Ansi2Uni("WQL"), Ansi2Uni(WMIReqSql), #IFlags,0,@pEnumerator)
;hres=svc\ExecQuery(@"WQL",@WMIobj, #IFlags,0,@pEnumerator.IEnumWbemClassObject)
If #PB_Compiler_Unicode = 1
hres=svc\ExecQuery(@"WQL",@WMIReqSql, #IFlags,0,@pEnumerator.IEnumWbemClassObject)
Else
hres=svc\ExecQuery(ansi2bstr("WQL"),ansi2bstr(WMIReqSql), #IFlags,0,@pEnumerator.IEnumWbemClassObject)
EndIf
If hres <> 0
MessageRequester("ERROR", "unable to call IWbemServices::ExecQuery", #MB_OK)
svc\Release()
loc\Release()
pEnumerator\Release()
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 7: Get the data from the WQL query. The IEnumWbemClassObject pointer is linked to the data objects that the query returned,
; --- and the data objects can be retrieved with the IEnumWbemClassObject::Next method. This method links the data objects to an IWbemClassObject pointer
; --- that is passed into the method. Use the IWbemClassObject::Get method to get the desired information from the data objects.
mem=AllocateMemory(1000)
hres=pEnumerator\reset()
Repeat
hres = pEnumerator\Next(#WBEM_INFINITE, 1, @pclsObj.IWbemClassObject, @uReturn)
If uReturn = 0
Break
EndIf
; get a list with the names of the properties.
hres=pclsObj\GetNames(0, 0, 0,@sf.l); get a list with the names of the properties.
SafeArrayGetLBound_(sf, 1, @lBound)
SafeArrayGetUBound_(sf, 1, @uBound)
Dim indices(1)
For i = lbound To ubound
indices(0) = i
SafeArrayGetElement_(sf, @indices(), @temp)
If temp
Property = PeekS(temp, -1, #PB_Unicode)
If #PB_Compiler_Unicode = 1
hres=pclsObj\get(@Property, 0, mem, 0, 0)
Else
hres=pclsObj\get(ansi2bstr(Property), 0, mem, 0, 0)
EndIf
type=PeekW(mem)
Select type
Case 8
val.s=PeekS(bstr2string(PeekL(mem+8)))
Case 3
val.s=Str(PeekL(mem+8))
Default
val.s=""
EndSelect
If FindString(WMIReqSql,"*",1) <> 0;we need everything, not just some specific properties
AddElement(WMI())
WMI()\Property = Property
WMI()\Value = val
ElseIf Left(Property,1)<>"_";we need some specific properties, not all, not these starting with '_'.
AddElement(WMI())
WMI()\Property = Property
WMI()\Value = val
EndIf
EndIf
Next
Until uReturn = 0
; --- Step 8: Cleanup
svc\release()
loc\release()
pEnumerator\release()
If uReturn
pclsObj\release()
EndIf
CoUninitialize_()
ProcedureReturn #True
EndProcedure
;- Data Section
DataSection
CLSID_IEnumWbemClassObject:
;1B1CAD8C-2DAB-11D2-B604-00104B703EFD
Data.l $1B1CAD8C
Data.w $2DAB, $11D2
Data.b $B6, $04, $00, $10, $4B, $70, $3E, $FD
IID_IEnumWbemClassObject:
;7C857801-7381-11CF-884D-00AA004B2E24
Data.l $7C857801
Data.w $7381, $11CF
Data.b $88, $4D, $00, $AA, $00, $4B, $2E, $24
CLSID_WbemLocator:
;4590f811-1d3a-11d0-891f-00aa004b2e24
Data.l $4590F811
Data.w $1D3A, $11D0
Data.b $89, $1F, $00, $AA, $00, $4B, $2E, $24
IID_IWbemLocator:
;dc12a687-737f-11cf-884d-00aa004b2e24
Data.l $DC12A687
Data.w $737F, $11CF
Data.b $88, $4D, $00, $AA, $00, $4B, $2E, $24
IID_IUnknown:
;00000000-0000-0000-C000-000000000046
Data.l $00000000
Data.w $0000, $0000
Data.b $C0, $00, $00, $00, $00, $00, $00, $46
EndDataSection
Code : Tout sélectionner
;Diagnostic
; sur un programme de Andre (2004), DataMiner (2005) ..... et d'autres qui ont essayé :)
;et sur une mise à jour de falsam (19.09.2012)
;créé par Micoute (28/07/2016)
Enumeration Fenetres
#Fenetre_principale
EndEnumeration
Enumeration Actions
#Sortie
#Aucune
EndEnumeration
Enumeration Autres_gadgets
#Canvas
#Liste_Memoire
#Liste_Graphique
#Liste_Mere
#Liste_Base
#Liste_Disque
#Liste_Bios
#Liste_Bus
EndEnumeration
Structure Liste
Titre.s
Largeur.i
EndStructure
;WMI constants
#RPC_C_AUTHN_LEVEL_CONNECT = 2
#RPC_C_IMP_LEVEL_IDENTIFY = 2
#EOAC_NONE = 0
#RPC_C_AUTHN_WINNT = 10
#RPC_C_AUTHZ_NONE = 0
#RPC_C_AUTHN_LEVEL_CALL = 3
#RPC_C_IMP_LEVEL_IMPERSONATE = 3
#CLSCTX_INPROC_SERVER = 1
#WBEMFlagReturnImmediately = 16
#wbemFlagForwardOnly = 32
;#WBEM_INFINITE = $FFFFFFFF
#IFlags = #wbemFlagReturnImmediately + #wbemFlagForwardOnly
Structure WMIClass
Property.s
Value.s
EndStructure
;Mémoire
Structure MemoirePhysique
BankLabel.s
Capacity.i
Caption.s
DataWidth.i
DeviceLocator.s
FormFactor.i
Speed.i
Tag.s
EndStructure
Structure Memoire
Banque.s
Capacite.i
Titre.s
LargeurDonnee.i
Position.s
Facteur.s
Vitesse.i
Tag.s
EndStructure
;Carte graphique
Structure Video
DeviceName.s
DisplayFrequency.i
LogPixels.i
PelsHeight.i
PelsWidth.i
EndStructure
Structure Graphique
Nom.s
Frequence.i
Dpi.i
Hauteur.i
Largeur.i
EndStructure
;Carte mère
Structure Carte_Mere
Caption.s
Manufacturer.s
Product.s
SerialNumber.s
Status.s
Tag.s
Version.s
EndStructure
Structure Mere_Base
Availability.s
Caption.s
Description.s
DeviceID.s
Name.s
PNPDeviceID.s
PrimaryBusType.s
SecondaryBusType.s
SystemName.s
EndStructure
;Disques
Structure Disque
Lecteur.s
Type.s
Numero.s
Systeme.s
Nom.s
NumeroSerie.s
Capacite.s
EspaceLibre.s
EspaceOccupe.s
PourcentOccupe.f
EndStructure
Structure Logique
Description.s
Id.s
Type.i
Systeme.s
EspaceLibre.q
LngComposantMaxi.i
Taille.q
NomVolume.s
NumSerieVol.s
EndStructure
;Bios
Structure Bios
Caption.s
CurrentLanguage.s
Manufacturer.s
SerialNumber.s
EndStructure
;Bus
Structure Bus_Win32
BusNum.i
BusType.i
Caption.s
EndStructure
Structure Bus
TitreBus.s
NumeroBus.i
TypeBus.s
EndStructure
Global.i Police = LoadFont(Police, "DejaVu Sans Mono", 20, #PB_Font_Bold)
Global.i Police2 = LoadFont(Police2, "DejaVu Sans Mono", 12, #PB_Font_Bold)
Global.i x = 250, y = 50, CoulFond = $404040, CoulFond2 = $606060, i, action = #Aucune, Evenement
Global NewList WMIResult.WMIClass()
;Mémoire
Global NewList Maliste_Memoire.s(), NewList Memoire.MemoirePhysique(), Dim Donnee_Memoire.Liste(7)
Global.Memoire Barrette
;Carte graphique
Global NewList MaListe_Graphique.s(), NewList Appareil.Video(), NewList Carte.Graphique(), Dim Donnee_Graphique.Liste(4)
Global.Graphique Carte2
;Carte mère
Global.s NewList MaListe_Mere.s(), NewList MaListe_Base(), NewList CarteMere.Carte_Mere(), NewList CarteBase.Mere_Base(), Dim Donnee_Mere.liste(6), Dim Donnee_Base.liste(7)
Global Carte3.Carte_Mere, Carte4.Mere_Base
;Disque
Global.Disque LeDisque
Global.s NewList MaListe_Disque(), NewList Disque.Logique()
Global.Liste Dim Donnee_Disque(8)
Global TypeDisque.s, valeur.s, valeur2.s, valeur3.s, Capacite.q, Occupe.q
;Bios
Global$ NewList MaListe_Bios(), NewList Produit.Bios(), Dim Donnee_Bios.Liste(3)
;Bus
Global$ NewList MaListe_Bus.Bus(), NewList Data_Bus.Bus_Win32(), Dim Donnee_Bus.liste(2), Resultat$
Global.Bus_Win32 MesBus
ExamineDesktops()
Global.i Largeur = DesktopWidth(0) , Hauteur = DesktopHeight(0) , Profondeur = DesktopDepth(0)
Largeur-5 : Hauteur-30
Procedure.l ansi2bstr(ansi.s)
Protected Size.l, i.i, tmp.s
;size=MultiByteToWideChar_(#CP_ACP,0,ansi,Len(ansi),"","")
*ansi = AllocateMemory(SizeOf(String))
size=MultiByteToWideChar_(#CP_ACP,0,*ansi,Len(ansi),#Null,#Null)
Dim unicode.w(size)
;MultiByteToWideChar_(#CP_ACP, 0, ansi, Len(ansi), unicode(), size);#CP_ACP
MultiByteToWideChar_(#CP_ACP, 0, *ansi, Len(ansi), unicode(), size);#CP_ACP
For i=0 To size
tmp + Hex(unicode(i),#PB_Unicode)
Next
ProcedureReturn SysAllocString_(@unicode())
EndProcedure
Procedure bstr2string (bstr)
Static result.s
result = PeekS(bstr, -1, #PB_Unicode)
ProcedureReturn @result
EndProcedure
; Interrogate WMI Database
Procedure WMIQuery(WMIReqSql.s, List WMI.WMIClass())
Protected Mem.l
Protected hres.i
Protected loc.IWbemLocator
Protected svc.IWbemServices
Protected pUnk.IUnknown
Protected pEnumerator.IEnumWbemClassObject
Protected pclsObj.IWbemClassObject
Protected uReturn
Protected sf.l
Protected lBound.i, uBound.i, i.i
Protected temp.l, x.Variant, Type.i
Protected Property.s, Val.s
Protected nDim.i, plUbound.i, z.i, rgVar
ClearList(WMI())
; --- Step 1: Initialize COM parameters with a call to CoInitializeEx
CoInitializeEx_(0, #COINIT_MULTITHREADED)
; --- Step 2: Initialize COM process security by calling CoInitializeSecurity.
hres=CoInitializeSecurity_(0, -1,0,0,#RPC_C_AUTHN_LEVEL_CONNECT,#RPC_C_IMP_LEVEL_IDENTIFY,0,#EOAC_NONE,0)
If hres <> 0
MessageRequester("ERROR", "unable to call CoInitializeSecurity", #MB_OK)
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 3: Obtain the initial locator to WMI by calling CoCreateInstance.
hres=CoCreateInstance_(?CLSID_WbemLocator,0,#CLSCTX_INPROC_SERVER,?IID_IWbemLocator,@loc.IWbemLocator)
If hres <> 0
MessageRequester("ERROR", "unable to call CoCreateInstance", #MB_OK)
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 4: Obtain a pointer to IWbemServices for the root\cimv2 namespace on the local computer by calling IWbemLocator::ConnectServer.
;hres=loc\ConnectServer(Ansi2Uni("root\cimv2"),0,0,0,0,0,0,@svc)
If #PB_Compiler_Unicode = 1;we create unicode application
hres=loc\ConnectServer(@"root\cimv2" ,0,0,0,0,0,0,@svc.IWbemServices)
Else; non unicode
hres=loc\ConnectServer(ansi2bstr("root\cimv2"),0,0,0,0,0,0,@svc.IWbemServices)
EndIf
If hres <> 0
MessageRequester("ERROR", "unable to call IWbemLocator::ConnectServer", #MB_OK)
svc\release()
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 5: Set IWbemServices proxy security so the WMI service can impersonate the client by calling CoSetProxyBlanket.
hres=svc\queryinterface(?IID_IUnknown,@pUnk.IUnknown)
hres=CoSetProxyBlanket_(svc,#RPC_C_AUTHN_WINNT,#RPC_C_AUTHZ_NONE,0,#RPC_C_AUTHN_LEVEL_CALL,#RPC_C_IMP_LEVEL_IMPERSONATE,0,#EOAC_NONE)
If hres <> 0
MessageRequester("ERROR", "unable to call CoSetProxyBlanket", #MB_OK)
svc\release()
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
hres=CoSetProxyBlanket_(pUnk,#RPC_C_AUTHN_WINNT,#RPC_C_AUTHZ_NONE,0,#RPC_C_AUTHN_LEVEL_CALL,#RPC_C_IMP_LEVEL_IMPERSONATE,0,#EOAC_NONE)
If hres <> 0
MessageRequester("ERROR", "unable to call CoSetProxyBlanket", #MB_OK)
svc\release()
loc\release()
CoUninitialize_()
ProcedureReturn #False
EndIf
pUnk\release()
; --- Step 6: Use the IWbemServices pointer to make requests of WMI.
;hres=svc\ExecQuery(Ansi2Uni("WQL"), Ansi2Uni(WMIReqSql), #IFlags,0,@pEnumerator)
;hres=svc\ExecQuery(@"WQL",@WMIobj, #IFlags,0,@pEnumerator.IEnumWbemClassObject)
If #PB_Compiler_Unicode = 1
hres=svc\ExecQuery(@"WQL",@WMIReqSql, #IFlags,0,@pEnumerator.IEnumWbemClassObject)
Else
hres=svc\ExecQuery(ansi2bstr("WQL"),ansi2bstr(WMIReqSql), #IFlags,0,@pEnumerator.IEnumWbemClassObject)
EndIf
If hres <> 0
MessageRequester("ERROR", "unable to call IWbemServices::ExecQuery", #MB_OK)
svc\Release()
loc\Release()
pEnumerator\Release()
CoUninitialize_()
ProcedureReturn #False
EndIf
; --- Step 7: Get the data from the WQL query. The IEnumWbemClassObject pointer is linked to the data objects that the query returned,
; --- and the data objects can be retrieved with the IEnumWbemClassObject::Next method. This method links the data objects to an IWbemClassObject pointer
; --- that is passed into the method. Use the IWbemClassObject::Get method to get the desired information from the data objects.
mem=AllocateMemory(1000)
hres=pEnumerator\reset()
Repeat
hres = pEnumerator\Next(#WBEM_INFINITE, 1, @pclsObj.IWbemClassObject, @uReturn)
If uReturn = 0
Break
EndIf
; get a list with the names of the properties.
hres=pclsObj\GetNames(0, 0, 0,@sf.l); get a list with the names of the properties.
SafeArrayGetLBound_(sf, 1, @lBound)
SafeArrayGetUBound_(sf, 1, @uBound)
Dim indices(1)
For i = lbound To ubound
indices(0) = i
SafeArrayGetElement_(sf, @indices(), @temp)
If temp
Property = PeekS(temp, -1, #PB_Unicode)
If #PB_Compiler_Unicode = 1
hres=pclsObj\get(@Property, 0, mem, 0, 0)
Else
hres=pclsObj\get(ansi2bstr(Property), 0, mem, 0, 0)
EndIf
type=PeekW(mem)
Select type
Case 8
val.s=PeekS(bstr2string(PeekL(mem+8)))
Case 3
val.s=Str(PeekL(mem+8))
Default
val.s=""
EndSelect
If FindString(WMIReqSql,"*",1) <> 0;we need everything, not just some specific properties
AddElement(WMI())
WMI()\Property = Property
WMI()\Value = val
ElseIf Left(Property,1)<>"_";we need some specific properties, not all, not these starting with '_'.
AddElement(WMI())
WMI()\Property = Property
WMI()\Value = val
EndIf
EndIf
Next
Until uReturn = 0
; --- Step 8: Cleanup
svc\release()
loc\release()
pEnumerator\release()
If uReturn
pclsObj\release()
EndIf
CoUninitialize_()
ProcedureReturn #True
EndProcedure
Procedure CentrerTexte(Fenetre.i, y.i, Texte.s, Couleur.i) ; Centre le texte dans la fenêtre à la hauteur et à la couleur choisies.
DrawText((DesktopWidth(Fenetre) - TextWidth(Texte)) / 2, y, Texte, Couleur)
EndProcedure
Procedure CentrerTexteXY(X0.i, X1.i, y.i, Texte.s, Couleur.i) ; Centre le texte entre X0 et X1 à la hauteur et à la couleur choisies.
DrawText((X1 + X0) / 2, y, Texte, Couleur)
EndProcedure
;{ Mémoire
If WMIQuery("Select * from Win32_PhysicalMemory", WMIResult())
ForEach WMIResult()
;Debug WMIResult()\Property + " = " + WMIResult()\Value
Select WMIResult()\Property
Case "BankLabel"
AddElement(Memoire())
Memoire()\BankLabel = WMIResult()\Value
Case "Capacity"
Memoire()\Capacity = Val(WMIResult()\Value)/1024/1024/1024
Case "Caption"
Memoire()\Caption = WMIResult()\Value
Case "DataWidth"
Memoire()\DataWidth = Val(WMIResult()\Value)
Case "DeviceLocator"
Memoire()\DeviceLocator = WMIResult()\Value
Case "FormFactor"
Memoire()\FormFactor = Val(WMIResult()\Value)
Case "Speed"
Memoire()\Speed = Val(WMIResult()\Value)
Case "Tag"
Memoire()\Tag = WMIResult()\Value
EndSelect
Next
EndIf
;Mémoire
ForEach Memoire()
With Barrette
\Banque = Memoire()\BankLabel
\Capacite = Memoire()\Capacity
\Titre = Memoire()\Caption
\LargeurDonnee = Memoire()\DataWidth
\Position = Memoire()\DeviceLocator
;\Facteur = Memoire()\FormFactor
Select Memoire()\FormFactor
Case 0
\Facteur = "Unknown"
Case 1
\Facteur = "Other"
Case 2
\Facteur = "SIP"
Case 3
\Facteur = "DIP"
Case 4
\Facteur = "ZIP"
Case 5
\Facteur = "SOJ"
Case 6
\Facteur = "Proprietary"
Case 7
\Facteur = "SIMM"
Case 8
\Facteur = "DIMM"
Case 9
\Facteur = "TSOP"
Case 10
\Facteur = "PGA"
Case 11
\Facteur = "RIMM"
Case 12
\Facteur = "SODIMM"
Case 13
\Facteur = "SRIMM"
Case 14
\Facteur = "SMD"
Case 15
\Facteur = "SSMP"
Case 16
\Facteur = "QFP"
Case 17
\Facteur = "TQFP"
Case 18
\Facteur = "SOIC"
Case 19
\Facteur = "LCC"
Case 20
\Facteur = "PLCC"
Case 21
\Facteur = "BGA"
Case 22
\Facteur = "FPBGA"
Case 23
\Facteur = "LGA"
EndSelect
\Vitesse = Memoire()\Speed
\Tag = Memoire()\Tag
EndWith
AddElement(Maliste_Memoire())
With Barrette
Maliste_Memoire() = \Banque
Maliste_Memoire() + #LF$ + \Capacite + " Go"
Maliste_Memoire() + #LF$ + \Titre
Maliste_Memoire() + #LF$ + \LargeurDonnee + " bits"
Maliste_Memoire() + #LF$ + \Position
Maliste_Memoire() + #LF$ + \Facteur
Maliste_Memoire() + #LF$ + \Vitesse + " ns"
Maliste_Memoire() + #LF$ + \Tag
EndWith
Next
;}
;{ Carte graphique
If WMIQuery("Select * from Win32_DisplayConfiguration", WMIResult())
ForEach WMIResult()
;Debug WMIResult()\Property + " = " + WMIResult()\Value
Select WMIResult()\Property
Case "DeviceName"
AddElement(Appareil())
Appareil()\DeviceName = WMIResult()\Value
Case "DisplayFrequency"
Appareil()\DisplayFrequency = Val(WMIResult()\Value)
Case "LogPixels"
Appareil()\LogPixels = Val(WMIResult()\Value)
Case "PelsHeight"
Appareil()\PelsHeight = Val(WMIResult()\Value)
Case "PelsWidth"
Appareil()\PelsWidth = Val(WMIResult()\Value)
EndSelect
Next
EndIf
;Carte graphique
ForEach Appareil()
With Carte2
\Nom = Appareil()\DeviceName
\Frequence = Appareil()\DisplayFrequency
\Dpi = Appareil()\LogPixels
\Hauteur = Appareil()\PelsHeight
\Largeur = Appareil()\PelsWidth
EndWith
AddElement(MaListe_Graphique())
With Carte2
MaListe_Graphique() = \Nom
MaListe_Graphique() + #LF$ + \Frequence + " Hz"
MaListe_Graphique() + #LF$ + \Dpi + " ppp"
MaListe_Graphique() + #LF$ + \Hauteur + " px"
MaListe_Graphique() + #LF$ + \Largeur + " px"
EndWith
Next
;}
;{ Carte de base
If WMIQuery("Select * from Win32_MotherboardDevice", WMIResult())
ForEach WMIResult()
;Debug WMIResult()\Property + " = " + WMIResult()\Value
Select WMIResult()\Property
Case "Availability"
AddElement(CarteBase())
CarteBase()\Availability = WMIResult()\Value
Case "Caption"
CarteBase()\Caption = WMIResult()\Value
Case "Description"
CarteBase()\Description = WMIResult()\Value
Case "DeviceID"
CarteBase()\DeviceID = WMIResult()\Value
Case "Name"
CarteBase()\Name = WMIResult()\Value
Case "PNPDeviceID"
CarteBase()\PNPDeviceID = WMIResult()\Value
Case "PrimaryBusType"
CarteBase()\PrimaryBusType = WMIResult()\Value
Case "SecondaryBusType"
CarteBase()\SecondaryBusType = WMIResult()\Value
Case "SystemName"
CarteBase()\SystemName = WMIResult()\Value
EndSelect
Next
EndIf
Procedure$ Disponibilite_Base()
Select Val(CarteBase()\Availability )
Case 1 : Rep$ = "Autre"
Case 2 : Rep$ = "Inconnue"
Case 3 : Rep$ = "En cours d'exécution ou pleine puissance"
Case 4 : Rep$ = "Avertissement"
Case 5 : Rep$ = "En test"
Case 6 : Rep$ = "Non applicable"
Case 7 : Rep$ = "Mise hors tension"
Case 8 : Rep$ = "Hors ligne"
Case 9 : Rep$ = "Hors service"
Case 10 : Rep$ = "Dégradée"
Case 11 : Rep$ = "Non installée"
Case 12 : Rep$ = "Erreur Installation"
Case 13 : Rep$ = "Power Save - inconnu"
Case 14 : Rep$ = "Power save - Mode d'alimentation faible"
Case 15 : Rep$ = "Power Save - Veille"
Case 16 : Rep$ = "Cycle d'alimentation"
Case 17 : Rep$ = "Power Save - AVERTISSEMENT"
EndSelect
ProcedureReturn Rep$
EndProcedure
ForEach CarteBase()
With Carte4
\Availability = Disponibilite_Base()
\Caption = CarteBase()\Caption
\Description = CarteBase()\Description
\DeviceID = CarteBase()\DeviceID
\Name = CarteBase()\Name
\PrimaryBusType = CarteBase()\PrimaryBusType
\SecondaryBusType = CarteBase()\SecondaryBusType
\SystemName = CarteBase()\SystemName
EndWith
AddElement(MaListe_Base())
With Carte4
MaListe_Base() = \Availability
MaListe_Base() + #LF$ + \Caption
MaListe_Base() + #LF$ + \Description
MaListe_Base() + #LF$ + \DeviceID
MaListe_Base() + #LF$ + \Name
MaListe_Base() + #LF$ + \PrimaryBusType
MaListe_Base() + #LF$ + \SecondaryBusType
MaListe_Base() + #LF$ + \SystemName
EndWith
Next
;}
;{ Carte mère
If WMIQuery("Select * from Win32_BaseBoard", WMIResult())
ForEach WMIResult()
;Debug WMIResult()\Property + " = " + WMIResult()\Value
Select WMIResult()\Property
Case "Manufacturer"
AddElement(CarteMere())
CarteMere()\Manufacturer = WMIResult()\Value
Case "Product"
CarteMere()\Product = WMIResult()\Value
Case "SerialNumber"
CarteMere()\SerialNumber = WMIResult()\Value
Case "Status"
CarteMere()\Status = WMIResult()\Value
Case "Tag"
CarteMere()\Tag = WMIResult()\Value
Case "Version"
CarteMere()\Version = WMIResult()\Value
EndSelect
Next
EndIf
; Carte mère
ForEach CarteMere()
AddElement(MaListe_Mere())
With Carte3
MaListe_Mere() = CarteBase()\Caption
MaListe_Mere() + #LF$ + CarteMere()\Manufacturer
MaListe_Mere() + #LF$ + CarteMere()\Product
MaListe_Mere() + #LF$ + CarteMere()\SerialNumber
MaListe_Mere() + #LF$ + CarteMere()\Status
MaListe_Mere() + #LF$ + CarteMere()\Tag
MaListe_Mere() + #LF$ + CarteMere()\Version
EndWith
Next
;}
;{ Disque
If WMIQuery("Select * from Win32_LogicalDisk", WMIResult())
ForEach WMIResult()
Select WMIResult()\Property
Case "Description"
AddElement(Disque())
Disque()\Description = WMIResult()\Value
Case "DeviceID"
Disque()\Id = WMIResult()\Value
Case "DriveType"
Disque()\Type = Val(WMIResult()\Value)
Case "FileSystem"
Disque()\Systeme = WMIResult()\Value
Case "FreeSpace"
Disque()\EspaceLibre = Val(WMIResult()\Value)
Case "MaximumComponentLength"
Disque()\LngComposantMaxi = Val(WMIResult()\Value)
Case "Size"
Disque()\Taille = Val(WMIResult()\Value)
Case "VolumeName"
Disque()\NomVolume = WMIResult()\Value
Case "VolumeSerialNumber"
Disque()\NumSerieVol = WMIResult()\Value
EndSelect
Next
EndIf
ForEach Disque()
If Disque()\NumSerieVol
Capacite = Disque()\Taille
If Disque()\Taille >= 1125899906842624
Capacite = Disque()\Taille/1125899906842624
Global valeur.s = " Po "
Global.s valeur3 = valeur
ElseIf Disque()\Taille >= 1099511627776
Capacite = Disque()\Taille/1099511627776
valeur = " To "
valeur3 = valeur
ElseIf Disque()\Taille >= 1073741824
Capacite = Disque()\Taille/1073741824
valeur = " Go "
valeur3 = valeur
ElseIf Disque()\Taille >= 1048576
Capacite = Disque()\Taille/1048576
valeur = " Mo "
valeur3 = valeur
ElseIf Disque()\Taille >= 1024
Capacite = Disque()\Taille/1024
valeur = " Ko "
valeur3 = valeur
Else
valeur = " octets "
valeur3 = valeur
EndIf
If Disque()\Type = 5
Capacite = Disque()\Taille/1024
valeur = " Go "
EndIf
If Disque()\EspaceLibre >= 1125899906842624
Capacite = Disque()\Taille/1125899906842624
Global.s valeur2 = " Po "
ElseIf Disque()\EspaceLibre >= 1099511627776
Disque()\EspaceLibre = Disque()\EspaceLibre/1099511627776
valeur2 = " To "
ElseIf Disque()\EspaceLibre >= 1073741824
Disque()\EspaceLibre = Disque()\EspaceLibre/1073741824
valeur2 = " Go "
ElseIf Disque()\EspaceLibre >= 1048576
Disque()\EspaceLibre = Disque()\EspaceLibre/1048576
valeur2 = " Mo "
ElseIf Disque()\EspaceLibre >= 1024
Disque()\EspaceLibre = Disque()\EspaceLibre/1024
valeur2 = " Ko "
Else
valeur2 = " octets "
EndIf
With LeDisque
\Lecteur = Disque()\ID
\Nom = Disque()\NomVolume
\Systeme = Disque()\Systeme
\Type = Disque()\Description
\NumeroSerie = Disque()\NumSerieVol
\Capacite = RSet(StrF(Capacite),3, " ") +valeur
\EspaceLibre = RSet(StrF(Disque()\EspaceLibre),3, " ") + valeur2
\EspaceOccupe = RSet(StrF(ValF(\Capacite) - ValF(\EspaceLibre)),3, " ") + valeur3
\PourcentOccupe = ValF(\EspaceOccupe) * 100 / ValF(\Capacite)
EndWith
AddElement(MaListe_Disque())
With LeDisque
MaListe_Disque() = \Lecteur
MaListe_Disque() + #LF$ + \Nom
MaListe_Disque() + #LF$ + \Systeme
MaListe_Disque() + #LF$ + \NumeroSerie
MaListe_Disque() + #LF$ + \Type
MaListe_Disque() + #LF$ + \Capacite
MaListe_Disque() + #LF$ + \EspaceLibre
MaListe_Disque() + #LF$ + \EspaceOccupe
MaListe_Disque() + #LF$ + RSet(StrF(\PourcentOccupe,3), 6, " ") + " %"
EndWith
EndIf
Next
;}
;{ Bios
If WMIQuery("Select * from Win32_BIOS", WMIResult())
ForEach WMIResult()
Select WMIResult()\Property
Case "Caption"
AddElement(Produit())
Produit()\Caption = Mid(WMIResult()\Value,6,4)+" "+Left(WMIResult()\Value,4)+": "+Mid(WMIResult()\Value,15,3)+Mid(WMIResult()\Value,12,3)+Right(WMIResult()\Value,25)
Case "CurrentLanguage"
Produit()\CurrentLanguage = WMIResult()\Value + " "
Case "Manufacturer"
Produit()\Manufacturer = WMIResult()\Value + " "
Case "SerialNumber"
Produit()\SerialNumber = WMIResult()\Value + " "
EndSelect
;Debug WMIResult()\Property + " = " + WMIResult()\Value
Next
EndIf
AddElement(MaListe_Bios())
MaListe_Bios() = Produit()\Caption + #LF$ + Produit()\CurrentLanguage + #LF$ + Produit()\Manufacturer + #LF$ + Produit()\SerialNumber
;}
;{ Bus
If WMIQuery("Select * from Win32_Bus", WMIResult())
ForEach WMIResult()
;Debug WMIResult()\Property + " = " + WMIResult()\Value
Select WMIResult()\Property
Case "BusNum"
AddElement(Data_Bus())
Data_Bus()\BusNum = Val(WMIResult()\Value)
Case "TypeBus"
Data_Bus()\BusType = Val(WMIResult()\Value)
Case "Caption"
Data_Bus()\Caption = WMIResult()\Value
EndSelect
Next
EndIf
Procedure.s TitreBus()
ProcedureReturn Data_Bus()\Caption
EndProcedure
Procedure NumeroBus()
ProcedureReturn Data_Bus()\BusNum
EndProcedure
Procedure$ TypeBus()
Select Data_Bus()\BusType
Case -1
Resultat$ = "Non défini"
Case 0
Resultat$ = "Interne"
Case 1
Resultat$ = "ISA"
Case 2
Resultat$ = "EISA"
Case 3
Resultat$ = "MicroChannel"
Case 4
Resultat$ = "TurboChannel"
Case 5
Resultat$ = "PCI"
Case 6
Resultat$ = "VME"
Case 7
Resultat$ = "NuBus"
Case 8
Resultat$ = "PCMCIA"
Case 9
Resultat$ = "C"
Case 10
Resultat$ = "MPI"
Case 11
Resultat$ = "MPSA"
Case 12
Resultat$ = "Processeur interne"
Case 13
Resultat$ = "Power interne"
Case 14
Resultat$ = "PNP ISA"
Case 15
Resultat$ = "PNP"
Case 16
Resultat$ = "Type interface maximum"
EndSelect
ProcedureReturn Resultat$
EndProcedure
ForEach Data_Bus()
With MesBus
\BusNum = NumeroBus()
\BusType = Val(TypeBus())
\Caption = TitreBus()
EndWith
Next
ForEach Data_Bus()
AddElement(MaListe_Bus())
With MesBus
MaListe_Bus()\TitreBus = TitreBus()
MaListe_Bus()\NumeroBus = NumeroBus()
MaListe_Bus()\TypeBus = TypeBus()
EndWith
Next
;}
;{ Données
;Mémoire
Donnee_Memoire(0)\Titre = "Banque "
Donnee_Memoire(0)\Largeur = 100
Donnee_Memoire(1)\Titre = "Capacité"
Donnee_Memoire(1)\Largeur = 110
Donnee_Memoire(2)\Titre = "Type de mémoire "
Donnee_Memoire(2)\Largeur = 220
Donnee_Memoire(3)\Titre = "Larg données"
Donnee_Memoire(3)\Largeur = 150
Donnee_Memoire(4)\Titre = "Emplacement"
Donnee_Memoire(4)\Largeur = 200
Donnee_Memoire(5)\Titre = "Facteur forme"
Donnee_Memoire(5)\Largeur = 150
Donnee_Memoire(6)\Titre = "Vitesse "
Donnee_Memoire(6)\Largeur = 100
Donnee_Memoire(7)\Titre = "Tag "
Donnee_Memoire(7)\Largeur = 200
;Carte graphique
Donnee_Graphique(0)\Titre = "Nom "
Donnee_Graphique(0)\Largeur = 250
Donnee_Graphique(1)\Titre = "Fréquence "
Donnee_Graphique(1)\Largeur = 120
Donnee_Graphique(2)\Titre = "DPI "
Donnee_Graphique(2)\Largeur = 120
Donnee_Graphique(3)\Titre = "Hauteur"
Donnee_Graphique(3)\Largeur = 120
Donnee_Graphique(4)\Titre = "Largeur "
Donnee_Graphique(4)\Largeur = 85
;Carte mère
Donnee_Mere(0)\Titre = "Type carte "
Donnee_Mere(0)\Largeur = 200
Donnee_Mere(1)\Titre = "Fabricant "
Donnee_Mere(1)\Largeur = 300
Donnee_Mere(2)\Titre = "Produit "
Donnee_Mere(2)\Largeur = 250
Donnee_Mere(3)\Titre = "N° de série "
Donnee_Mere(3)\Largeur = 200
Donnee_Mere(4)\Titre ="Statut "
Donnee_Mere(4)\Largeur = 100
Donnee_Mere(5)\Titre = "Balise "
Donnee_Mere(5)\Largeur = 120
Donnee_Mere(6)\Titre = "Version "
Donnee_Mere(6)\Largeur = 150
;Carte de base
Donnee_Base(0)\Titre =" Disponibilité "
Donnee_Base(0)\Largeur = 410
Donnee_Base(1)\Titre = " Libellé "
Donnee_Base(1)\Largeur = 120
Donnee_Base(2)\Titre = " Description "
Donnee_Base(2)\Largeur = 120
Donnee_Base(3)\Titre = " ID_Base "
Donnee_Base(3)\Largeur = 125
Donnee_Base(4)\Titre = "Nom "
Donnee_Base(4)\Largeur = 120
Donnee_Base(5)\Titre = "Bus Primaire "
Donnee_Base(5)\Largeur = 80
Donnee_Base(6)\Titre = "Bus Secondaire "
Donnee_Base(6)\Largeur = 80
Donnee_Base(7)\Titre = "Nom Système "
Donnee_Base(7)\Largeur = 120
Donnee_Disque(0)\Titre = "ID "
Donnee_Disque(0)\Largeur = 30
Donnee_Disque(1)\Titre = "Nom du volume "
Donnee_Disque(1)\Largeur = 200
Donnee_Disque(2)\Titre = "Système "
Donnee_Disque(2)\Largeur = 70
Donnee_Disque(3)\Titre = "N° série "
Donnee_Disque(3)\Largeur = 100
Donnee_Disque(4)\Titre = "Description "
Donnee_Disque(4)\Largeur = 210
Donnee_Disque(5)\Titre = "Capacité "
Donnee_Disque(5)\Largeur = 130
Donnee_Disque(6)\Titre = "Libre "
Donnee_Disque(6)\Largeur = 130
Donnee_Disque(7)\Titre = "Occupé "
Donnee_Disque(7)\Largeur = 130
Donnee_Disque(8)\Titre = "% occupé "
Donnee_Disque(8)\Largeur = 100
Donnee_Bios(0)\Titre = "Produit "
Donnee_Bios(0)\Largeur = 450
Donnee_Bios(1)\Titre = "Langage courant "
Donnee_Bios(1)\Largeur = 300
Donnee_Bios(2)\Titre = "Fabricant "
Donnee_Bios(2)\Largeur = 300
Donnee_Bios(3)\Titre = "N° de série "
Donnee_Bios(3)\Largeur = 230
Donnee_Bus(0)\Titre = "Description "
Donnee_Bus(0)\Largeur = 80
Donnee_Bus(1)\Titre = " Numéro de bus "
Donnee_Bus(1)\Largeur = 80
Donnee_Bus(2)\Titre = " Type de bus "
Donnee_Bus(2)\Largeur = 235
;}
Procedure Principale()
OpenWindow(#Fenetre_principale, 0, 0, Largeur, Hauteur, "Diagnotic WMI.pb",
#PB_Window_SystemMenu|#PB_Window_Maximize)
CanvasGadget(#Canvas, 0, 0, Largeur, Hauteur, #PB_Canvas_ClipMouse)
StartDrawing(CanvasOutput(#Canvas))
Box(0, 0, GadgetWidth(#Canvas), GadgetHeight(#Canvas), CoulFond)
StopDrawing()
DC = StartDrawing(CanvasOutput(#Canvas))
;{ Liste Mémoire
DrawingFont(Police2)
DrawingMode(#PB_2DDrawing_Transparent)
Y = TextHeight(" ")
DrawText(10,Y,"Mémoire",$FFFF7F)
Y + TextHeight(" ")
DrawingMode(#PB_2DDrawing_Default)
Y + TextHeight(" ")
DrawText(10, Y, " "+Donnee_Memoire(0)\Titre + " " + Donnee_Memoire(1)\Titre + " " + Donnee_Memoire(2)\Titre + " " + Donnee_Memoire(3)\Titre + " " +
Donnee_Memoire(4)\Titre +" " +Donnee_Memoire(5)\Titre + " " + Donnee_Memoire(6)\Titre + " " + Donnee_Memoire(7)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
ListIconGadget(#Liste_Memoire, 10, Y, 1260, TextHeight(" ") * ListSize(Maliste_Memoire()) + TextHeight(" "), Donnee_Memoire(0)\Titre, Donnee_Memoire(0)\Largeur,#LVS_NOCOLUMNHEADER)
For i = 1 To ArraySize(Donnee_Memoire())
AddGadgetColumn(#Liste_Memoire, i, Donnee_Memoire(i)\Titre, Donnee_Memoire(i)\Largeur)
Next
ForEach Maliste_Memoire()
AddGadgetItem(#Liste_Memoire, -1, Maliste_Memoire())
Next
;}
;{ Liste Carte graphique
DrawingMode(#PB_2DDrawing_Transparent)
Y + GadgetHeight(#Liste_Memoire) + TextHeight(" ")
DrawText(10,Y,"Carte vidéo",$FFFF7F)
Y + TextHeight(" ")
DrawingMode(#PB_2DDrawing_Default)
Y + TextHeight(" ")
DrawText(10, Y, " "+Donnee_Graphique(0)\Titre + " " + Donnee_Graphique(1)\Titre + " " + Donnee_Graphique(2)\Titre + " " + Donnee_Graphique(3)\Titre + " " + Donnee_Graphique(4)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
ListIconGadget(#Liste_Graphique, 10, Y, 730, TextHeight(" ")* ListSize(MaListe_Graphique()) + TextHeight(" "), Donnee_Graphique(0)\Titre, Donnee_Graphique(0)\Largeur,#LVS_NOCOLUMNHEADER)
For i = 1 To ArraySize(Donnee_Graphique())
AddGadgetColumn(#Liste_Graphique, i, Donnee_Graphique(i)\Titre, Donnee_Graphique(i)\Largeur)
Next
ForEach MaListe_Graphique()
AddGadgetItem(#Liste_Graphique, -1, MaListe_Graphique())
Next
;}
;{ Liste Carte mère
DrawingMode(#PB_2DDrawing_Transparent)
Y + GadgetHeight(#Liste_Graphique) + TextHeight(" ") + 10
DrawText(10,Y,"Carte mère",$FFFF7F)
Y + TextHeight(" ")
DrawingMode(#PB_2DDrawing_Default)
Y + TextHeight(" ")
DrawText(10, Y, Donnee_Mere(0)\Titre + Donnee_Mere(1)\Titre + Donnee_Mere(2)\Titre + Donnee_Mere(3)\Titre + Donnee_Mere(4)\Titre + Donnee_Mere(5)\Titre + Donnee_Mere(6)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
ListIconGadget(#Liste_Mere, 10, Y, 1370, TextHeight(" ") * ListSize(MaListe_Mere()) + TextHeight(" "), Donnee_Mere(0)\Titre, Donnee_Mere(0)\Largeur,#LVS_NOCOLUMNHEADER)
For i = 1 To ArraySize(Donnee_Mere())
AddGadgetColumn(#Liste_Mere, i, Donnee_Mere(i)\Titre, Donnee_Mere(i)\Largeur)
Next
ForEach MaListe_Mere()
AddGadgetItem(#Liste_Mere, -1, MaListe_Mere())
Next
;}
;{ Liste Carte de base
DrawingMode(#PB_2DDrawing_Transparent)
Y + GadgetHeight(#Liste_Mere) + TextHeight(" ")
DrawText(10,Y,"Carte de base",$FFFF7F)
Y + TextHeight(" ")
DrawingMode(#PB_2DDrawing_Default)
Y + TextHeight(" ")
DrawText(10, Y, Donnee_Base(0)\Titre + Donnee_Base(2)\Titre + Donnee_Base(4)\Titre + Donnee_Base(6)\Titre, $FFFF7F, $FF0000)
y + TextHeight(" ")
DrawText(10, Y, Donnee_Base(1)\Titre + Donnee_Base(3)\Titre + Donnee_Base(5)\Titre + Donnee_Base(7)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
;ListIconGadget(#Liste_Base, 250, Y, 1590, TextHeight(" ")* ListSize(MaListe_Base()) + TextHeight(" "), Donnee_Base(0)\Titre, Donnee_Base(0)\Largeur,#LVS_NOCOLUMNHEADER)
ListIconGadget(#Liste_Base, 0, Y, 0, TextHeight(" "), "", 1,#LVS_NOCOLUMNHEADER)
;For i = 0 To ArraySize(Donnee_Base())
; AddGadgetColumn(#Liste_Base, i, Donnee_Base(i)\Titre, Donnee_Base(i)\Largeur)
;Next
;ForEach MaListe_Base()
; AddGadgetItem(#Liste_Base, -1, MaListe_Base())
;Next
DrawText(10, Y, Disponibilite_Base() + " " + CarteBase()\Caption + " " + CarteBase()\Description + " " + CarteBase()\DeviceID + " " +
CarteBase()\Name + " " + CarteBase()\PrimaryBusType + " " + CarteBase()\SecondaryBusType + " " + CarteBase()\SystemName, $F0FF00, CoulFond)
;}
;{ Disque
YY = Y
DrawingMode(#PB_2DDrawing_Transparent)
Y + GadgetHeight(#Liste_Base) + TextHeight(" ")
DrawText(10, Y, "Disques", $FFFF7F)
Y + TextHeight(" ")
DrawingMode(#PB_2DDrawing_Default)
Y + TextHeight(" ")
DrawText(10, Y, Donnee_Disque(0)\Titre +Donnee_Disque(1)\Titre + Donnee_Disque(2)\Titre + Donnee_Disque(3)\Titre + Donnee_Disque(4)\Titre + Donnee_Disque(5)\Titre + Donnee_Disque(6)\Titre + Donnee_Disque(7)\Titre +
Donnee_Disque(8)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
ListIconGadget(#Liste_Disque, 10, Y, 1110, TextHeight(" ") * ListSize(MaListe_Disque()) + TextHeight(" ") * 2, Donnee_Disque(0)\Titre, Donnee_Disque(0)\Largeur,#LVS_NOCOLUMNHEADER)
For i = 1 To ArraySize(Donnee_Disque())
AddGadgetColumn(#Liste_Disque, i, Donnee_Disque(i)\Titre, Donnee_Disque(i)\Largeur)
Next
ForEach MaListe_Disque()
AddGadgetItem(#Liste_Disque, -1, MaListe_Disque())
Next
DrawingFont(Police)
DrawingMode(#PB_2DDrawing_Transparent)
;}
;{ Bus
Y = 0
YY = Y
DrawingMode(#PB_2DDrawing_Transparent)
Y + TextHeight(" ")
DrawText(1315, Y, "Bus", $FFFF7F)
Y + TextHeight(" ")
DrawingMode(#PB_2DDrawing_Default)
Y + TextHeight(" ")
DrawText(1315, Y, Donnee_Bus(0)\Titre + Donnee_Bus(2)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
DrawText(1315, Y, Donnee_Bus(1)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
ListIconGadget(#Liste_Bus, 1315, Y, 485, TextHeight(" ") * ListSize(MaListe_Bus()) + TextHeight(" ") * 2.1, Donnee_Bus(0)\Titre, Donnee_Bus(0)\Largeur,#LVS_NOCOLUMNHEADER)
For i = 0 To 2
AddGadgetColumn(#Liste_Bus, i, Donnee_Bus(i)\Titre, Donnee_Bus(i)\Largeur)
Next
;SortStructuredList(MaListe_Bus(), #PB_Sort_Ascending, OffsetOf(Bus\NumeroBus), TypeOf(Bus\NumeroBus))
ForEach MaListe_Bus()
AddGadgetItem(#Liste_Bus, -1, MaListe_Bus()\TitreBus + #LF$ + MaListe_Bus()\NumeroBus + #LF$ + MaListe_Bus()\TypeBus)
Next
DrawingFont(Police)
DrawingMode(#PB_2DDrawing_Transparent)
;}
;{ Bios
DrawingMode(#PB_2DDrawing_Transparent)
Y = 730
DrawText(10, Y, "Bios", $FFFF7F)
Y + TextHeight(" ")
DrawingMode(#PB_2DDrawing_Default)
Y + TextHeight(" ")
DrawText(10, Y, Donnee_Bios(0)\Titre +Donnee_Bios(1)\Titre + Donnee_Bios(2)\Titre + Donnee_Bios(3)\Titre, $FFFF7F, $FF0000)
Y + TextHeight(" ")
DrawText(10, Y, Produit()\Caption + Space(6) + Produit()\CurrentLanguage + Space(32) + Produit()\Manufacturer + Space(23) + Produit()\SerialNumber, $F0FF00, CoulFond)
DrawingFont(Police)
DrawingMode(#PB_2DDrawing_Transparent)
;}
;Mémoire
SetGadgetFont(#Liste_Memoire, Police2)
SetGadgetColor(#Liste_Memoire, #PB_Gadget_BackColor, CoulFond)
SetGadgetColor(#Liste_Memoire, #PB_Gadget_FrontColor, $F0FF00)
;Carte graphique
SetGadgetFont(#Liste_Graphique, Police2)
SetGadgetColor(#Liste_Graphique, #PB_Gadget_BackColor, CoulFond)
SetGadgetColor(#Liste_Graphique, #PB_Gadget_FrontColor, $F0FF00)
;Carte mère
SetGadgetFont(#Liste_Mere, Police2)
SetGadgetColor(#Liste_Mere, #PB_Gadget_BackColor, CoulFond)
SetGadgetColor(#Liste_Mere, #PB_Gadget_FrontColor, $F0FF00)
;Carte de base
SetGadgetFont(#Liste_Base, Police2)
SetGadgetColor(#Liste_Base, #PB_Gadget_BackColor, CoulFond)
SetGadgetColor(#Liste_Base, #PB_Gadget_FrontColor, $F0FF00)
;Disque
SetGadgetFont(#Liste_Disque, Police2)
SetGadgetColor(#Liste_Disque, #PB_Gadget_BackColor, CoulFond)
SetGadgetColor(#Liste_Disque, #PB_Gadget_FrontColor, $F0FF00)
;Bios
SetGadgetFont(#Liste_Bios, Police2)
;SetGadgetColor(#Liste_Bios, #PB_Gadget_BackColor, CoulFond)
;SetGadgetColor(#Liste_Bios, #PB_Gadget_FrontColor, $F0FF00)
;Bus
SetGadgetFont(#Liste_Bus, Police2)
SetGadgetColor(#Liste_Bus, #PB_Gadget_BackColor, CoulFond)
SetGadgetColor(#Liste_Bus, #PB_Gadget_FrontColor, $F0FF00)
StopDrawing()
EndProcedure
Principale()
;- gestion des évènements en boucle sans fin
Repeat
Evenement = WindowEvent()
Select Evenement
Case #PB_Event_CloseWindow
action = #Sortie
EndSelect
Until action = #Sortie
;- fermeture de la fenêtre en douceur
CloseWindow(#Fenetre_principale)
End
;- Data Section
DataSection
CLSID_IEnumWbemClassObject:
;1B1CAD8C-2DAB-11D2-B604-00104B703EFD
Data.l $1B1CAD8C
Data.w $2DAB, $11D2
Data.b $B6, $04, $00, $10, $4B, $70, $3E, $FD
IID_IEnumWbemClassObject:
;7C857801-7381-11CF-884D-00AA004B2E24
Data.l $7C857801
Data.w $7381, $11CF
Data.b $88, $4D, $00, $AA, $00, $4B, $2E, $24
CLSID_WbemLocator:
;4590f811-1d3a-11d0-891f-00aa004b2e24
Data.l $4590F811
Data.w $1D3A, $11D0
Data.b $89, $1F, $00, $AA, $00, $4B, $2E, $24
IID_IWbemLocator:
;dc12a687-737f-11cf-884d-00aa004b2e24
Data.l $DC12A687
Data.w $737F, $11CF
Data.b $88, $4D, $00, $AA, $00, $4B, $2E, $24
IID_IUnknown:
;00000000-0000-0000-C000-000000000046
Data.l $00000000
Data.w $0000, $0000
Data.b $C0, $00, $00, $00, $00, $00, $00, $46
EndDataSection
Code : Tout sélectionner
IncludeFile "D:\Programmation\Prg Perso\Include\WMIQuery.pbi"
Structure Processeur
;AddressWidth.i
;Architecture.i
;AssetTag.s
;Availability.i
Caption.s
;Characteristics.i
;ConfigManagerErrorCode.i
;ConfigManagerUserConfig.b
;CpuStatus.i
;CreationClassName.s
CurrentClockSpeed.i
CurrentVoltage.i
;DataWidth.i
Description.s
;DeviceID.s
;ErrorCleared.b
;ErrorDescription.s
;ExtClock.i
;Family.i
;InstallDate.i
;L2CacheSize.i
;L2CacheSpeed.i
;L3CacheSize.i
;L3CacheSpeed.i
;LastErrorCode.i
;Level.i
LoadPercentage.i
Manufacturer.s
;MaxClockSpeed.i
Name.s
NumberOfCores.i
NumberOfEnabledCore.i
;NumberOfLogicalProcessors.i
;OtherFamilyDescription.s
;PartNumber.s
;PNPDeviceID.s
;ProcessorId.s
;ProcessorType.i
;Revision.i
;Role.s
;SecondLevelAddressTranslationExtensions.b
;SerialNumber.s
;SocketDesignation.s
;Status.s
;StatusInfo.i
;Stepping.s
;SystemCreationClassName.s
;SystemName.s
;ThreadCount.i
;UniqueId.s
;UpgradeMethod.i
;Version.s
;VirtualizationFirmwareEnabled.b
;VMMonitorModeExtensions.b
;VoltageCaps.i
EndStructure
Global NewList WMIResult.WMIClass(), NewList Produit.Processeur()
If WMIQuery("Select * from Win32_Processor", WMIResult())
ForEach WMIResult()
;Debug ""+WMIResult()\Property + " = " + WMIResult()\Value
Select WMIResult()\Property
Case "Caption"
AddElement(Produit())
Produit()\Caption = WMIResult()\Value
Case "CurrentClockSpeed"
Produit()\CurrentClockSpeed = Val(WMIResult()\Value)
Case "CurrentVoltage"
Produit()\CurrentVoltage = Val(WMIResult()\Value)
Case "Description"
Produit()\Description = WMIResult()\Value + " "
Case "LoadPercentage"
Produit()\LoadPercentage = Val(WMIResult()\Value)
Case "Manufacturer"
Produit()\Manufacturer = WMIResult()\Value + " "
Case "Name"
Produit()\Name = WMIResult()\Value + " "
Case "NumberOfCores"
Produit()\NumberOfCores = Val(WMIResult()\Value)
Case "NumberOfEnabledCore"
Produit()\NumberOfEnabledCore = Val(WMIResult()\Value)
EndSelect
Next
EndIf
ForEach Produit()
Debug Produit()\Caption
Debug "Vitesse courante : " +Produit()\CurrentClockSpeed
Debug "Tension courante : " +Produit()\CurrentVoltage
Debug "Description : " + Produit()\Description
Debug "% charge : " +Produit()\LoadPercentage
Debug "Fabricant : " +Produit()\Manufacturer
Debug "Nom : " + Produit()\Name
Debug "Nbre de coeurs : " + Produit()\NumberOfCores
Debug "Nbre coeurs actifs : " + Produit()\NumberOfEnabledCore
Next
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Divers parametres
Je serais interessé par la recuperation du nom de l'ordi... Si vous avez ca, merci bien
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Re: Divers parametres
ComputerName() ...Je serais interessé par la recuperation du nom de l'ordi...
Trouvé à l'endroit secret: F1
Re: Divers parametres
Je ne suis pas en F1, je suis en peugeotMarc56 a écrit :ComputerName() ...Je serais interessé par la recuperation du nom de l'ordi...
Trouvé à l'endroit secret: F1
Merci
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Re: Divers parametres
Bonjour,
Regarde les commandes suivantes:Pour les variables Environment,
dans une 'Invite de commandes' (WIN+R Ouvrir: cmd.exe),
tape la commande MS-DOS set
Tu obtiendra toutes les variables définies pour ton PC dont COMPUTERNAME=
Une autre manière d'obtenir cette information est par exemple:
Regarde les commandes suivantes:
Code : Tout sélectionner
Result$ = GetUserDirectory(Type)
Result$ = GetEnvironmentVariable(Name$)
dans une 'Invite de commandes' (WIN+R Ouvrir: cmd.exe),
tape la commande MS-DOS set
Tu obtiendra toutes les variables définies pour ton PC dont COMPUTERNAME=
Une autre manière d'obtenir cette information est par exemple:
Code : Tout sélectionner
PCNAME$ = GetEnvironmentVariable("COMPUTERNAME") : Debug PCNAME$
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Re: Divers parametres
Merci a tous
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits