Obtener el nombre del OS o version de Windows

Obtener el nombre del OS o version de Windows

Postby jnavas » Wed Nov 22, 2023 8: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.
User avatar
jnavas
 
Posts: 479
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: Obtener el nombre del OS o version de Windows

Postby JoseAlvarez » 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: Select all  Expand view  RUN
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.
User avatar
JoseAlvarez
 
Posts: 805
Joined: Sun Nov 09, 2014 5:01 pm

Re: Obtener el nombre del OS o version de Windows

Postby karinha » Wed Nov 22, 2023 11:36 am

\SAMPLES\WINVER.PRG

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Obtener el nombre del OS o version de Windows

Postby Willi Quintana » Wed Nov 22, 2023 5:54 pm

MI Estimado, prueba con esto:
Code: Select all  Expand view  RUN


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



User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Obtener el nombre del OS o version de Windows

Postby carlos vargas » Thu Nov 23, 2023 4:59 am

Code: Select all  Expand view  RUN
?OS()
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Obtener el nombre del OS o version de Windows

Postby jll-fwh » Tue Dec 12, 2023 8: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
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Obtener el nombre del OS o version de Windows

Postby nageswaragunupudi » Wed Dec 13, 2023 6:38 am

Code: Select all  Expand view  RUN
? "Windows " + cWinVersion() // -> "Windows 11 64 Bits"
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Obtener el nombre del OS o version de Windows

Postby nageswaragunupudi » Wed Dec 13, 2023 6: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: Select all  Expand view  RUN
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: Select all  Expand view  RUN
cWinVersion()
// and
GetVersion() // for more build information
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 95 guests