Hello Sumiran,
You can look the code below my signature.
Regards,
Bernard.
// Begin code
* Test.prg - Programme de test.
* -----------------------------
*
* En cours de développement.
* Harbour 3.0.0 - Windows 8.1 pro 64, 7 pro 32, XP pro III
* Ce programme est un exemple basique.
*
/*
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394077(v=vs.85).aspxApparemment, Microsoft n'a pas mis à jour cette classe depuis Windows 2000.
Pour les anciens Windows ( NT ), il faut éventuellement installer les programmes
suivant en fonction du système ( choisir la langue ) :
- scd56fr.exe
- scr56fr.exe
- scriptfr.exe
http://www.microsoft.com/fr-fr/download/details.aspx?id=1406- wmint4.exe
http://www.microsoft.com/en-us/download/details.aspx?id=24045class Win32_BIOS : CIM_BIOSElement
{
uint16 BiosCharacteristics[];
string BIOSVersion[];
string BuildNumber;
string Caption;
string CodeSet;
string CurrentLanguage;
string Description;
string IdentificationCode;
uint16 InstallableLanguages;
datetime InstallDate;
string LanguageEdition;
String ListOfLanguages[];
string Manufacturer;
string Name;
string OtherTargetOS;
boolean PrimaryBIOS;
datetime ReleaseDate;
string SerialNumber;
string SMBIOSBIOSVersion;
uint16 SMBIOSMajorVersion;
uint16 SMBIOSMinorVersion;
boolean SMBIOSPresent;
string SoftwareElementID;
uint16 SoftwareElementState;
string Status;
uint16 TargetOperatingSystem;
string Version;
};
*/
*
* --------------
PROCEDURE Main
* --------------
*
LOCAL oLocator
LOCAL oWMI
LOCAL Items
LOCAL Item
*
LOCAL I := 0
LOCAL J
*
SET DATE FRENCH && Date en français.
SET CENTURY ON && Année de la date en 4 chiffre.
SET EPOCH TO 1970 && Pour année à 2 chiffres.
*
* Mise en ANSI ( Windows ) langue française.
*
REQUEST HB_LANG_FR
REQUEST HB_CODEPAGE_FRWIN
HB_CDPSELECT( 'FRWIN' )
HB_LANGSELECT( 'FR' )
*
SETMODE( 50, 80 ) && Lignes et colonnes d'affichage écran.
*
? "Début du programme."
?
oLocator := WIN_OLECREATEOBJECT( "WbemScripting.SWbemLocator" )
oWMI := oLocator:ConnectServer( ".", "root\cimv2" )
Items := oWMI:ExecQuery( "SELECT * FROM Win32_Bios" )
*
SET SAFETY OFF
SET ALTE TO __Result.txt
SET ALTE ON
? "Bios -> Nombre : " + LTRIM( STR( Items:count, 9, 0 ) )
*
FOR EACH Item in Items
I++
*
?
? REPLICATE( "-", 10 ) + " " + LTRIM( STR( I, 9, 0 ) )
?
*
? "BiosCharacteristics . :", VALTYPE( Item:BiosCharacteristics ) , ":", Item:BiosCharacteristics
IF VALTYPE( Item:BiosCharacteristics ) == "A" && Not NIL
FOR J := 1 TO LEN( Item:BiosCharacteristics )
WMI_Bios_BiosCharacteristics( Item:BiosCharacteristics[ J ] )
ENDFOR
ENDIF
?
*
? "BIOSVersion ......... :", VALTYPE( Item:BIOSVersion ) , ":", Item:BIOSVersion
IF VALTYPE( Item:BIOSVersion ) == "A" && Not NIL
FOR J := 1 TO LEN( Item:BIOSVersion )
? SPACE( 27 ), Item:BIOSVersion[ J ]
ENDFOR
ENDIF
?
*
? "BuildNumber ......... :", VALTYPE( Item:BuildNumber ) , ":", Item:BuildNumber
? "Caption ............. :", VALTYPE( Item:Caption ) , ":", Item:Caption
? "CodeSet ............. :", VALTYPE( Item:CodeSet ) , ":", Item:CodeSet
? "CurrentLanguage ..... :", VALTYPE( Item:CurrentLanguage ) , ":", Item:CurrentLanguage
? "Description ......... :", VALTYPE( Item:Description ) , ":", Item:Description
? "IdentificationCode .. :", VALTYPE( Item:IdentificationCode ) , ":", Item:IdentificationCode
? "InstallableLanguages :", VALTYPE( Item:InstallableLanguages ) , ":", Item:InstallableLanguages
? "InstallDate ......... :", VALTYPE( Item:InstallDate ) , ":", Item:InstallDate
? "LanguageEdition ..... :", VALTYPE( Item:LanguageEdition ) , ":", Item:LanguageEdition
*
? "ListOfLanguages ..... :", VALTYPE( Item:ListOfLanguages ) , ":", Item:ListOfLanguages
IF VALTYPE( Item:ListOfLanguages ) == "A" && Not NIL
FOR J := 1 TO LEN( Item:ListOfLanguages )
? SPACE( 27 ), Item:ListOfLanguages[ J ]
ENDFOR
ENDIF
?
*
? "Manufacturer ........ :", VALTYPE( Item:Manufacturer ) , ":", Item:Manufacturer
? "Name ................ :", VALTYPE( Item:Name ) , ":", Item:Name
? "OtherTargetOS ....... :", VALTYPE( Item:OtherTargetOS ) , ":", Item:OtherTargetOS
? "PrimaryBIOS ......... :", VALTYPE( Item:PrimaryBIOS ) , ":", Item:PrimaryBIOS
? "ReleaseDate ......... :", VALTYPE( Item:ReleaseDate ) , ":", Item:ReleaseDate
? "SerialNumber ........ :", VALTYPE( Item:SerialNumber ) , ":", Item:SerialNumber
? "SMBIOSBIOSVersion ... :", VALTYPE( Item:SMBIOSBIOSVersion ) , ":", Item:SMBIOSBIOSVersion
? "SMBIOSMajorVersion .. :", VALTYPE( Item:SMBIOSMajorVersion ) , ":", Item:SMBIOSMajorVersion
? "SMBIOSMinorVersion .. :", VALTYPE( Item:SMBIOSMinorVersion ) , ":", Item:SMBIOSMinorVersion
? "SMBIOSPresent ....... :", VALTYPE( Item:SMBIOSPresent ) , ":", Item:SMBIOSPresent
? "SoftwareElementID ... :", VALTYPE( Item:SoftwareElementID ) , ":", Item:SoftwareElementID
*
? "SoftwareElementState :", VALTYPE( Item:SoftwareElementState )
IF VALTYPE( Item:SoftwareElementState ) == "N" && Not NIL
WMI_Bios_SoftwareElementState( Item:SoftwareElementState )
ENDIF
?
*
? "Status .............. :", VALTYPE( Item:Status ) , ":", Item:Status
? "TargetOperatingSystem :", VALTYPE( Item:TargetOperatingSystem )
*
IF VALTYPE( Item:TargetOperatingSystem ) == "N" && Not NIL
WMI_Bios_TargetOperatingSystem( Item:TargetOperatingSystem )
ENDIF
?
*
? "Version ............. :", VALTYPE( Item:Version ) , ":", Item:Version
*
ENDFOR
*
?
? REPLICATE( "-", 10 )
?
SET ALTE OFF
SET ALTE TO
*
oLocator := NIL
oWMI := NIL
Items := NIL
Item := NIL
*
hb_Run( "__Result.txt" )
*
WAIT "Fin du programme."
*
RETURN
*
* ----------------------------------------------
PROCEDURE WMI_Bios_BiosCharacteristics( Valeur )
* ----------------------------------------------
*
? SPACE( 27 ), STR( Valeur, 2, 0 ), "-> "
*
DO CASE
CASE Valeur == 0
?? "Reserved"
CASE Valeur == 1
?? "Reserved"
CASE Valeur == 2
?? "Unknown"
CASE Valeur == 3
?? "BIOS Characteristics Not Supported"
CASE Valeur == 4
?? "ISA is supported"
CASE Valeur == 5
?? "MCA is supported"
CASE Valeur == 6
?? "EISA is supported"
CASE Valeur == 7
?? "PCI is supported"
CASE Valeur == 8
?? "PC Card (PCMCIA) is supported"
CASE Valeur == 9
?? "Plug and Play is supported"
CASE Valeur == 10
?? "APM is supported"
CASE Valeur == 11
?? "BIOS is Upgradable (Flash)"
CASE Valeur == 12
?? "BIOS shadowing is allowed"
CASE Valeur == 13
?? "VL-VESA is supported"
CASE Valeur == 14
?? "ESCD support is available"
CASE Valeur == 15
?? "Boot from CD is supported"
CASE Valeur == 16
?? "Selectable Boot is supported"
CASE Valeur == 17
?? "BIOS ROM is socketed"
CASE Valeur == 18
?? "Boot From PC Card (PCMCIA) is supported"
CASE Valeur == 19
?? "EDD (Enhanced Disk Drive) Specification is supported"
CASE Valeur == 20
?? "Int 13h - Japanese Floppy for NEC 9800 1.2mb (3.5, 1k Bytes/Sector, 360 RPM) is supported"
CASE Valeur == 21
?? "Int 13h - Japanese Floppy for Toshiba 1.2mb (3.5, 360 RPM) is supported"
CASE Valeur == 22
?? "Int 13h - 5.25 / 360 KB Floppy Services are supported"
CASE Valeur == 23
?? "Int 13h - 5.25 /1.2MB Floppy Services are supported"
CASE Valeur == 24
?? "Int 13h - 3.5 / 720 KB Floppy Services are supported"
CASE Valeur == 25
?? "Int 13h - 3.5 / 2.88 MB Floppy Services are supported"
CASE Valeur == 26
?? "Int 5h, Print Screen Service is supported"
CASE Valeur == 27
?? "Int 9h, 8042 Keyboard services are supported"
CASE Valeur == 28
?? "Int 14h, Serial Services are supported"
CASE Valeur == 29
?? "Int 17h, printer services are supported"
CASE Valeur == 30
?? "Int 10h, CGA/Mono Video Services are supported"
CASE Valeur == 31
?? "NEC PC-98"
CASE Valeur == 32
?? "ACPI is supported"
CASE Valeur == 33
?? "USB Legacy is supported"
CASE Valeur == 34
?? "AGP is supported"
CASE Valeur == 35
?? "I2O boot is supported"
CASE Valeur == 36
?? "LS-120 boot is supported"
CASE Valeur == 37
?? "ATAPI ZIP Drive boot is supported"
CASE Valeur == 38
?? "1394 boot is supported"
CASE Valeur == 39
?? "Smart Battery is supported"
CASE Valeur >= 40 .AND. Valeur <= 47
?? "Reserved for BIOS vendor"
CASE Valeur >= 48 .AND. Valeur <= 63
?? "Reserved for system vendor"
OTHERWISE
?? "?? Unknow, look home Microsoft ??"
ENDCASE
*
RETURN
*
* ----------------------------------------------
PROCEDURE WMI_Bios_SoftwareElementState( Valeur )
* ----------------------------------------------
*
? SPACE( 27 ), STR( Valeur, 2, 0 ), "-> "
*
DO CASE
CASE Valeur == 0
?? "Deployable"
CASE Valeur == 1
?? "Installable"
CASE Valeur == 2
?? "Executable"
CASE Valeur == 3
?? "Running"
OTHERWISE
?? "?? Unknow, look home Microsoft ??"
ENDCASE
*
RETURN
*
* ----------------------------------------------
PROCEDURE WMI_Bios_TargetOperatingSystem( Valeur )
* ----------------------------------------------
*
? SPACE( 27 ), STR( Valeur, 2, 0 ), "-> "
*
DO CASE
CASE Valeur == 0
?? "Unknown"
CASE Valeur == 1
?? "Other"
CASE Valeur == 2
?? "MACOS"
CASE Valeur == 3
?? "ATTUNIX"
CASE Valeur == 4
?? "DGUX"
CASE Valeur == 5
?? "DECNT"
CASE Valeur == 6
?? "Digital Unix"
CASE Valeur == 7
?? "OpenVMS"
CASE Valeur == 8
?? "HPUX"
CASE Valeur == 9
?? "AIX"
CASE Valeur == 10
?? "MVS"
CASE Valeur == 11
?? "OS400"
CASE Valeur == 12
?? "OS/2"
CASE Valeur == 13
?? "JavaVM"
CASE Valeur == 14
?? "MSDOS"
CASE Valeur == 15
?? "WIN3x"
CASE Valeur == 16
?? "WIN95"
CASE Valeur == 17
?? "WIN98"
CASE Valeur == 18
?? "WINNT"
CASE Valeur == 19
?? "WINCE"
CASE Valeur == 20
?? "NCR3000"
CASE Valeur == 21
?? "NetWare"
CASE Valeur == 22
?? "OSF"
CASE Valeur == 23
?? "DC/OS"
CASE Valeur == 24
?? "Reliant UNIX"
CASE Valeur == 25
?? "SCO UnixWare"
CASE Valeur == 26
?? "SCO OpenServer"
CASE Valeur == 27
?? "Sequent"
CASE Valeur == 28
?? "IRIX"
CASE Valeur == 29
?? "Solaris"
CASE Valeur == 30
?? "SunOS"
CASE Valeur == 31
?? "U6000"
CASE Valeur == 32
?? "ASERIES"
CASE Valeur == 33
?? "TandemNSK"
CASE Valeur == 34
?? "TandemNT"
CASE Valeur == 35
?? "BS2000"
CASE Valeur == 36
?? "LINUX"
CASE Valeur == 37
?? "Lynx"
CASE Valeur == 38
?? "XENIX"
CASE Valeur == 39
?? "VM/ESA"
CASE Valeur == 40
?? "Interactive UNIX"
CASE Valeur == 41
?? "BSDUNIX"
CASE Valeur == 42
?? "FreeBSD"
CASE Valeur == 43
?? "NetBSD"
CASE Valeur == 44
?? "GNU Hurd"
CASE Valeur == 45
?? "OS9"
CASE Valeur == 46
?? "MACH Kernel"
CASE Valeur == 47
?? "Inferno"
CASE Valeur == 48
?? "QNX"
CASE Valeur == 49
?? "EPOC"
CASE Valeur == 50
?? "IxWorks"
CASE Valeur == 51
?? "VxWorks"
CASE Valeur == 52
?? "MiNT"
CASE Valeur == 53
?? "BeOS"
CASE Valeur == 54
?? "HP MPE"
CASE Valeur == 55
?? "NextStep"
CASE Valeur == 56
?? "PalmPilot"
CASE Valeur == 57
?? "Rhapsody"
CASE Valeur == 58
?? "Windows 2000"
CASE Valeur == 59
?? "Dedicated"
CASE Valeur == 60
?? "VSE"
CASE Valeur == 61
?? "TPF"
OTHERWISE
?? "?? Unknow, look home Microsoft ??"
ENDCASE
*
RETURN
// End code