FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Obtener el nombre del OS o version de Windows
Posts: 492
Joined: Wed Nov 16, 2005 12:03 PM
Obtener el nombre del OS o version de Windows
Posted: Wed Nov 22, 2023 08:53 AM

Saludos y buen d铆a,

Necesito conocer la version del OS que esta en ejecuci贸n, actualmente utilizo GETENV("OS"), en la mayor铆a indica windows_nt

estoy utilizando

oHttp:=CreateObject("winhttp.winhttprequest.5.1")

oHttp:Open("GET","https://www.bcv.org.ve",.f.)

Quien genera incidencias que requiere la participaci贸n del personal de soporte para habilitar protocolos. En versiones actuales de Windows no tenemos estas incidencias.

Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Obtener el nombre del OS o version de Windows
Posted: Wed Nov 22, 2023 11:21 AM
jnavas wrote:Saludos y buen d铆a,
Necesito conocer la version del OS que esta en ejecuci贸n, actualmente utilizo GETENV("OS"), en la mayor铆a indica windows_nt
estoy utilizando
oHttp:=CreateObject("winhttp.winhttprequest.5.1")
oHttp:Open("GET","https://www.bcv.org.ve",.f.)

Quien genera incidencias que requiere la participaci贸n del personal de soporte para habilitar protocolos. En versiones actuales de Windows no tenemos estas incidencias.
Hola Juan, saludos
Code (fw): Select all Collapse
Static Function VerWinVersion()

聽 聽 Local cWinVer

聽 聽 Run "ver > cWinVer.txt"
聽 聽 cWinver:= MemoRead('cWinVer.txt')

return cWinVer
"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Obtener el nombre del OS o version de Windows
Posted: Wed Nov 22, 2023 11:36 AM

\SAMPLES\WINVER.PRG

Regards, saludos.

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Obtener el nombre del OS o version de Windows
Posted: Wed Nov 22, 2023 05:54 PM
MI Estimado, prueba con esto:
Code (fw): Select all Collapse
Function WMainInfo()
LOCAL 聽oDatos, oSrv, oJob, i
LOCAL 聽 聽nFree:= ""
LOCAL 聽 聽 oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
LOCAL 聽 objWMI:= oLoc:ConnectServer()

LOCAL oSistema:= objWMI:ExecQuery("Select * from Win32_PhysicalMedia")
LOCAL 聽 oDisco:= objWMI:ExecQuery("Select * from Win32_LogicalDisk")
LOCAL 聽 oParti:= objWMI:ExecQuery("Select * from CIM_DiskPartition")
LOCAL 聽oDisket:= objWMI:ExecQuery("Select * From Win32_LogicalDisk Where DeviceID = 'A:'")
LOCAL 聽 objUnd:= objWMI:ExecQuery("Select * from Win32_MappedLogicalDisk")
LOCAL 聽 聽 oUnd:= objWMI:ExecQuery("Select * from Win32_CDROMDrive")
LOCAL 聽oResolu:= objWMI:ExecQuery("Select * from Win32_DesktopMonitor")
LOCAL 聽oSistem:= objWMI:ExecQuery("Select * from Win32_OperatingSystem")
LOCAL 聽 oUsers:= objWMI:ExecQuery("Select * from Win32_Account")
LOCAL 聽 聽oServ:= objWMI:ExecQuery("Select * from Win32_Service Where Name = 'Themes'")
LOCAL 聽 聽oTime:= objWMI:ExecQuery("Select * from Win32_LocalTime")
LOCAL 聽 聽oProc:= objWMI:ExecQuery("Select * from Win32_Processor")
LOCAL 聽 聽 oJbs:= objWMI:ExecQuery("SELECT Product, SerialNumber FROM Win32_BaseBoard")
LOCAL 聽 oIpSet:= objWMI:ExecQuery("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
LOCAL 聽 oList := objWMI:ExecQuery("Select * from Win32_ComputerSystem")

//Return(Nil)
objWMI:= oLoc:ConnectServer()
oJbs := objWMI:ExecQuery( "select * from Win32_BaseBoard" )
//oSrv:ExecQuery( "SELECT * FROM Win32_BaseBoard" )

FOR EACH oDatos IN oJbs
聽 oApp:tMBrd := Alltrim(cValtoChar(oDatos:Product))
聽 oApp:sMBrd := Alltrim(cValtoChar(oDatos:SerialNumber))
NEXT

FOR EACH oDatos IN oProc
聽 oApp:nCpu := Alltrim(cValtoChar(oDatos:Name))
聽 oApp:vCpu := Alltrim(cValtoChar(oDatos:CurrentClockSpeed)) + " Mghz"
NEXT

FOR Each oDatos in oSistem
聽 oApp:vDOS := oDatos:Caption + " " + oDatos:VERSION
NEXT

Return(NIl)

/*
FOR Each oDatos In oSistema
聽 聽 MsgInfo("Serial de fabrica: " + ALLTRIM(cValToChar(oDatos:SerialNumber)),"Numero de serie del disco duro")
NEXT



FOR Each oDatos In oDisco
聽 聽 MsgInfo("Unidad: " + ALLTRIM(cValToChar(oDatos:Name)) + "\ 聽Serial: " + ALLTRIM(cValToChar(oDatos:VolumeSerialNumber)),"Unidad y serial l贸gico de las unidades de disco")
NEXT



FOR Each oDatos in oParti
聽 聽 MsgInfo(ALLTRIM(cValToChar(oDatos:Name)) + " - Tama帽o: " +ALLTRIM(cValToChar(oDatos:Size)) + " En: " + ALLTRIM(cValToChar(oDatos:SystemName)) + " - Tipo: " + ALLTRIM(cValToChar(oDatos:TYPE)),"Particiones disponibles")
NEXT



FOR Each oDatos in oDisket
聽 聽 nFree:= oDatos:FreeSpace

聽 聽IF VALTYPE(nFree) = "U"
聽 聽 聽 聽 聽MsgInfo("No hay diskete en la unidad A:\","Aviso del WMI de Windows")
聽 聽ELSE
聽 聽 聽 聽 聽MsgStop("Hay un diskete en la unidad A:\","Aviso del WMI de Windows")
聽 聽ENDIF

NEXT



FOR Each oDatos In objUnd
聽 聽 MsgInfo("Device ID: " + oDatos:DeviceID +" Nombre: " + oDatos:Name +" Espacio Libre: " + cValtoChar(oDatos:FreeSpace) + " Tama帽o: " + cValtoChar(oDatos:Size),"Lista de unidades Mapeadas en Mi PC")
NEXT



FOR Each oDatos in oUnd
聽 聽 MsgInfo("Unidad: " + oDatos:Drive + " " + "Nombre: " + oDatos:Caption,"Unidades de CD instaladas en el equipo")
NEXT



FOR Each oDatos in oResolu
聽 聽MsgInfo("Trabajando a Resoluci贸n de Alto: " + cValToChar(oDatos:ScreenHeight) + " 聽y Ancho: " + cValToChar(oDatos:ScreenWidth),"Resolucion de Panralla")
NEXT



FOR Each oDatos In oSistem
聽 聽 MsgInfo(oDatos:InstallDate,"Fecha de Instalaci贸n de Windows XP")
NEXT



FOR Each oDatos in oSistem
聽 聽 MsgInfo("Directorio de Windows es: " + oDatos:WindowsDirectory +" 聽Directorio del Sistema es: "+ oDatos:SystemDirectory,"Directorio de Windows y del Sistema")
NEXT


/*
FOR Each oDatos in oUsers
聽 聽 MsgInfo(cValToChar(oDatos:Name) + " - " + cValToChar(oDatos:Caption),"Lista de Usuarios de Windows")
NEXT



MsgInfo("Deshabilitarndo los Themes en Windows XP")
FOR Each oDatos in oServ
聽 聽 oDatos:StopService()
聽 聽 SysRefresh()
NEXT



MsgInfo("Habilitando los Themes en Windows XP")
FOR Each oDatos in oServ
聽 聽 oDatos:StartService()
聽 聽 SysRefresh()
NEXT

FOR Each oDatos in oSistem
聽 聽 MsgInfo(oDatos:Caption + " " + oDatos:VERSION,"Sistemas operativos instalados en el PC")
NEXT



FOR Each oDatos in oTime
聽 聽 聽MsgInfo( "D铆a: " + cValToChar(oDatos:DAY) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "D铆a de la semana: " + cValToChar(oDatos:DayOfWeek) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Hora: " + cValToChar(oDatos:Hour) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Minutos: " + cValToChar(oDatos:Minute) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Mes: " + cValToChar(oDatos:MONTH) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Segundos: " + cValToChar(oDatos:Second) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Semana en el mes: " + cValToChar(oDatos:WeekInMonth) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "A帽o: " + cValToChar(oDatos:YEAR),"Dia, Hora, Mes y A帽o desde WMI")
NEXT


FOR EACH oDatos IN oProc
聽 聽 聽 聽 MsgInfo("El Nombre del Procesador es: "+Alltrim(cValtoChar(oDatos:Name)),"Desde WMI")
聽 聽 聽 聽 MsgInfo("la Velocidad Actual del Procesador es: "+Alltrim(cValtoChar(oDatos:CurrentClockSpeed)) + " Mghz","Desde WMI")
聽 聽 聽 聽 MsgInfo("la Velocidad M脿xima del Procesador es: "+Alltrim(cValtoChar(oDatos:MaxClockSpeed)) + " Mghz","Desde WMI")

NEXT

FOR EACH oDatos IN oJbs
聽 聽 聽 聽 MsgInfo("El Tipo de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:Product)),"Desde WMI")
聽 聽 聽 聽 MsgInfo("El N煤mero de Serie de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:SerialNumber)),"Desde WMI")
NEXT

FOR EACH oDatos IN oIPSet
聽 MsgInfo("El IPAddress es: " 聽+ Alltrim(cValtoChar(oDatos:IPAddress(0))), "Desde WMI")
聽 MsgInfo("El MacAddress es: " 聽+ Alltrim(cValtoChar(oDatos:IPAddress(1))), "Desde WMI")
NEXT

FOR EACH oDatos IN oList
聽 聽 If oDatos:PartOfDomain
聽 聽 聽 聽MsgInfo("Dominio: " + oDatos:Domain, "Desde WMI")
聽 聽 聽 Else
聽 聽 聽 聽MsgInfo("Grupo de Trabajo: " + oDatos:Domain, "Desde WMI")
聽 聽 EndIf
Next

Return nil
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Obtener el nombre del OS o version de Windows
Posted: Thu Nov 23, 2023 04:59 AM
Code (fw): Select all Collapse
?OS()
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
Re: Obtener el nombre del OS o version de Windows
Posted: Tue Dec 12, 2023 08:14 PM
Hola jNavas:

Aqu铆 te dejo otra opci贸n que creo que es lo que buscas:

OS()->cOSName
Os_IsWin2000()->lIsWin2000
Os_IsWin2000_Or_Later()->lIsWin2000_Or_Later
Os_IsWin2003()->lIsWin2003
Os_IsWin95()->lIsWin95
Os_IsWin98()->lIsWin98
Os_IsWin9X()->lIsWin9X
Os_IsWinME()->lIsWinME
Os_IsWinNT()->lIsWinNT
Os_IsWinNT351()->lIsWinNT351
Os_IsWinNT4()->lIsWinNT40
Os_IsWinVISTA()->lIsWinVista
Os_IsWinXP()->lIsWinXP

Aqu铆 tienes un hilo con todas las funciones Harbour: ( publicado por carlos navas el 21-10-2017 )
https://forums.fivetechsupport.com/viewtopic.php?f=6&t=34756&p=206608&hilit=iswin95&sid=f59278f07184fc08e9ab4c736fee75ec&sid=f59278f07184fc08e9ab4c736fee75ec#p206607

Espero que te sirva y que tengas mucha salud y felicidad.
Un abrazo;
Javier Lloris
javierllorisprogramador@gmail.com

Blogs personales:
Programaci贸n: https://javierlloris.blogspot.com/
Japon茅s: https://bitacorajaponesa.blogspot.com/
Cubos de Rubik: https://www.instagram.com/jllorisperson ... 2ybz0gmvul
Tengo una colecci贸n de unos 100 cubos de todo tipo de formas geom茅tricas, todos resueltos, en instagram solo hay unos cuentos cubos.
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Obtener el nombre del OS o version de Windows
Posted: Wed Dec 13, 2023 06:38 AM
Code (fw): Select all Collapse
? "Windows " + cWinVersion() // -> "Windows 11 64 Bits"
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Obtener el nombre del OS o version de Windows
Posted: Wed Dec 13, 2023 06:55 AM
My humble submission.
Whenever we want something, first look into our own FWH, next Harbour and then only other outside sources.
It is not uncommon for us to encounter runtime errors and see the error.log
Every error.log shows Windows version like this and we might have seen it many times.
Code (fw): Select all Collapse
Compiler version: Harbour 3.2.0dev (r2104281802)
聽 聽FiveWin 聽version: FWH 23.10
聽 聽C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
聽 聽Windows 11 64 Bits, version: 6.2, Build 9200
If we just look into FWH errsysw.prg, we get to know what function is used, we see the usage of FWH functions:
Code (fw): Select all Collapse
cWinVersion() 
// and
GetVersion() // for more build information
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion