Hello Henry,
Maybe you can take some idea in the code below my signature.
Regards,
Bernard.
// Begin code.
// Test.prg
// Test du module bh_WindowsVersion.ch.
procedure Main
// ANSI ( Windows ) en français.
request HB_LANG_FR
request HB_CODEPAGE_FRWIN
hb_cdpSelect( 'FRWIN' )
hb_langSelect( 'FR' )
// Taille de la console.
setmode( 25, 80 )
setcolor( "GR+/B" )
@ 0, 0, maxrow(), maxcol() box space( 9 )
? bh_WindowsVersion()
?
wait
return
// Renvoie la version de Windows.
function bh_WindowsVersion()
local oLocator // Objet WbemScripting.SWbemLocator.
local oWMI // Objet ConnectServer.
local oItem // Objet processeur.
local aSys // Tableau des processeurs : 1 normalement.
local cReturn := "" // Valeur retournée par la fonction.
oLocator := win_OleCreateObject( "WbemScripting.SWbemLocator" )
oWMI := oLocator:ConnectServer( ".", "root\cimv2" )
aSys := oWMI:ExecQuery( 'Select * from Win32_OperatingSystem' )
for each oItem in aSys // Il n'y en a qu'1 normalement.
cReturn += oItem:Caption + " "
cReturn += oItem:OSArchitecture // pas en XP.
cReturn += " build " + oItem:BuildNumber
endfor
// Libère la mémoire.
oItem := nil
aSys := nil
oWMI := nil
oLocator := nil
return strtran( cReturn, space( 2 ), space( 1 ) )
// End code.