Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Registro de inicio, version de SO.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Tips & Tricks
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Registro de inicio, version de SO. Responder citando

Es una respuesta que he dado en el foro, pero como no me acordaba donde lo habia guardado he pensado ponerla aqui.

Este codigo abre el registro de inicio de windows, y me devuelve la version del sistema operativo.

TRegistry *rg = new TRegistry;
rg->RootKey = HKEY_LOCAL_MACHINE;
rg->OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion",false);
ShowMessage (rg->ReadString("Version").c_str());
delete rg;

Por favor si alquien dispone de Windows NT, o smmall busines server, que lo pruebe, y conteste.

Volver arriba
Mensaje    Asunto: Registro de inicio, version de SO. Responder citando

Que tal Toño

Pues en equipos NT, te devuelve un
blanco ( Nulo ), porque la rama no
es del todo la correcta, para ello
hay que buscar en
SOFTWARE\Microsoft\Windows NT\CurrentVersion

Saludos. _Willa

Volver arriba
Mensaje    Asunto: Obtener la version del SO mediante OSVERSIONINFO Responder citando

Hola, primero que nada les envio un saludo a todos los miembros de la lista que cada dia son mas siempre brindando ayuda util y desinteresada para todos los que nos gusta el C++ Builder.

El siguiente programa accesa a la estructura OSVERSIONINFO mediante GetVersionEx una funcion API y obtiene informacion sobre la version del sistema operativo en uso. El programa lo probe sobre windows XP y C++ Builder 6. Anexo trozo de la API como referencia.

Usa cinco cajas de texto (EDIT) y un boton en donde escribi el codigo.

Que tengan buen dia...

Atentamente

D1rk_Avngr Twisted Evil

/* API CALLS


OSVERSIONINFO
The OSVERSIONINFO data structure contains operating system version information. The information includes major and minor version numbers, a build number, a platform identifier, and descriptive text about the operating system. This structure is used with the GetVersionEx function.

typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO;

Members
dwOSVersionInfoSize
Specifies the size, in bytes, of this data structure. Set this member to sizeof(OSVERSIONINFO) before calling the GetVersionEx function.
dwMajorVersion
Identifies the major version number of the operating system. For example, for Windows NT version 3.51, the major version number is 3; and for Windows NT version 4.0, the major version number is 4.
dwMinorVersion
Identifies the minor version number of the operating system. For example, for Windows NT version 3.51, the minor version number is 51; and for Windows NT version 4.0, the minor version number is 0.
dwBuildNumber
Windows NT: Identifies the build number of the operating system.
Windows 95: Identifies the build number of the operating system in the low-order word. The high-order word contains the major and minor version numbers.

dwPlatformId
Identifies the operating system platform. This member can be one of the following values: Value Platform
VER_PLATFORM_WIN32s Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS Win32 on Windows 95 or Windows 98.
For Windows 95, dwMinorVersion is zero.

For Windows 98, dwMinorVersion is greater than zero.

VER_PLATFORM_WIN32_NT Win32 on Windows NT.



szCSDVersion
Windows NT: Contains a null-terminated string, such as "Service Pack 3", that indicates the latest Service Pack installed on the system. If no Service Pack has been installed, the string is empty.
Windows 95: Contains a null-terminated string that provides arbitrary additional information about the operating system.

QuickInfo
Windows NT: Requires version 3.5 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 1.0 or later.
Header: Declared in winbase.h.
Unicode: Defined as Unicode and ANSI structures.

See Also
System Information Overview, System Information Structures, GetVersionEx, OSVERSIONINFOEX

*/

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "GetVersionEx.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
/* Estructura implementada por microsoft.
typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO */

OSVERSIONINFO osvi;
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

// Llenamos la estructura de datos OSVERSIONINFO
GetVersionEx(&osvi);


// Mostramos dwPlatforId
if(osvi.dwPlatformId == VER_PLATFORM_WIN32s)
Edit1->Text = "Win32s sobre Windows 3.1.";

if(osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
Edit1->Text = "Win32 sobre Windows 95, o 98";

if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
Edit1->Text = "Win32 sobre Windows NT";

// Mostramos dwMajorVersion
Edit2->Text = osvi.dwMajorVersion;

// Mostramos dwMinorVersion
Edit3->Text = osvi.dwMinorVersion;

// Mostramos dwBuildNumber
if(osvi.dwMinorVersion == 0) //Windows 95
Edit4->Text = (DWORD)(LOBYTE(LOWORD(osvi.dwBuildNumber)));
else
Edit4->Text = osvi.dwBuildNumber;


Edit5->Text = osvi.szCSDVersion;
if(Edit5->Text.IsEmpty())
Edit5->Text = "<EMPTY>";
}
//---------------------------------------------------------------------------
_________________
"Que no está muerto lo que yace eternamente, y con el paso de los evos, aun la muerte puede morir"... Abdul Alhazred.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.