Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-11-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Busca "GetVersion", "GetVersionEx" o ejecuta "winver"


Edito;

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
 Size: Cardinal;
 hKey: Windows.HKEY;
 Buffer: ShortString;
begin
 Size := SizeOf(Buffer);
 RegOpenKey(HKEY_LOCAL_MACHINE, 'software\microsoft\windows nt\currentversion', hKey);
 RegQueryValueEx(hKey, 'productname', nil, nil, @Buffer, @Size);
 RegCloseKey(hKey);
 ShowMessage(string(PChar(@Buffer)));
end;
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx

Última edición por cHackAll fecha: 10-11-2008 a las 23:42:05. Razón: Agrego código "compatible" con Vista xXx
Responder Con Cita
  #2  
Antiguo 12-12-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Busca "GetVersion", "GetVersionEx" o ejecuta "winver"


Edito;


Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject);
var
Size: Cardinal;
hKey: Windows.HKEY;
Buffer: ShortString;
begin
Size := SizeOf(Buffer);
RegOpenKey(HKEY_LOCAL_MACHINE, 'software\microsoft\windows nt\currentversion', hKey);
RegQueryValueEx(hKey, 'productname', nil, nil, @Buffer, @Size);
RegCloseKey(hKey);
ShowMessage(string(PChar(@Buffer)));
end;


Copiando y modificando (que no es lo mismo que entendiendo) el codigo de cHackAll quedo asi para una ventana de Acerca de:

Código Delphi [-]
procedure TfrmAbout.FormShow(Sender: TObject);
var
 Size, Size2: Cardinal;
 hKey, cbKey, csdKey: Windows.HKEY;
 Buffer, Buffer1, Buffer2: ShortString;
begin
  Size := SizeOf(Buffer);
  RegOpenKey(HKEY_LOCAL_MACHINE, 'software\microsoft\windows nt\currentversion', hKey);
  RegOpenKey(HKEY_LOCAL_MACHINE, 'software\microsoft\windows nt\currentversion', cbKey);
  RegOpenKey(HKEY_LOCAL_MACHINE, 'software\microsoft\windows nt\currentversion', csdKey);
  RegQueryValueEx(hKey, 'productname', nil, nil, @Buffer, @Size);
  RegQueryValueEx(cbKey, 'currentbuildnumber', nil, nil, @Buffer1, @Size);
  RegQueryValueEx(csdKey, 'CSDVersion', nil, nil, @Buffer2, @Size2);
  RegCloseKey(hKey);
  RegCloseKey(cbKey);
  RegCloseKey(CSDKey);
  //ShowMessage(string(PChar(@Buffer)) + ' (Build ' + string(PChar(@Buffer1)) + ') ' + string(PChar(@Buffer2)));
  Comments.caption := string(PChar(@Buffer)) + ' (Build ' + string(PChar(@Buffer1)) + ') ' + string(PChar(@Buffer2)); //Este es un label dentro del form
end;

Lo que no entiendo es porque en el label me escribe asi:

Cita:
Microsoft
Windows
XP(Build
2600)
Service
Pack 3
sin embargo si uso el showmessage lo escribe correctamente en una linea.
Mientras escribo y reviso el codigo me doy cuenta que tampoco inicialize Size2

Como siempre agradesco la ayuda!
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #3  
Antiguo 12-12-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
 Size: Cardinal;
 hKey: Windows.HKEY;
 Buffer: ShortString;
 Str: string;
begin
 RegOpenKey(HKEY_LOCAL_MACHINE, 'software\microsoft\windows nt\currentversion', hKey);
 Size := SizeOf(Buffer);
 RegQueryValueEx(hKey, 'productname', nil, nil, @Buffer, @Size);
 Str := string(PChar(@Buffer)) + ' (Build '; Size := SizeOf(Buffer);
 RegQueryValueEx(hKey, 'currentbuildnumber', nil, nil, @Buffer, @Size);
 Str := Str + string(PChar(@Buffer)) + ') ';
 RegQueryValueEx(hKey, 'csdversion', nil, nil, @Buffer, @Size);
 Str := Str + string(PChar(@Buffer));
 RegCloseKey(hKey);
 Caption := Str;
end;
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx

Última edición por cHackAll fecha: 12-12-2008 a las 17:48:19. Razón: Ctrl+V error
Responder Con Cita
  #4  
Antiguo 12-12-2008
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola

El mensaje de chakall a deformado el estilo de la página del foro, a salido todo en una sola línea jeje

Saludos!
Responder Con Cita
  #5  
Antiguo 12-12-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Cita:
Empezado por BlackDaemon Ver Mensaje
Hola

El mensaje de chakall a deformado el estilo de la página del foro, a salido todo en una sola línea jeje

Saludos!
jajajaja

Al parecer el Clipboard se agarró conmigo , gracias por hacerlo notar BlackDaemon.
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #6  
Antiguo 12-12-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino


De hecho desde hace unos dias hace cosas raras al pegar codigo. Al final asi quedo:

Código Delphi [-]
procedure TfrmAbout.FormShow(Sender: TObject);
var
 Size: Cardinal;
 hKey: Windows.HKEY;
 Buffer: ShortString;
 Str: string;
begin
  RegOpenKey(HKEY_LOCAL_MACHINE,'software\microsoft\windows nt\currentversion',hKey);
  
  Size := SizeOf(Buffer);
  RegQueryValueEx(hKey, 'productname', nil, nil,@Buffer, @Size);
  Str := string(PChar(@Buffer)) + ' (Build ';
  
  Size := SizeOf(Buffer);
  RegQueryValueEx(hKey, 'currentbuildnumber', nil,nil, @Buffer, @Size);
  Str := Str + string(PChar(@Buffer)) + ') ';
  
  Size := SizeOf(Buffer); //Si no se actualiza el tamaño muestra basura
  RegQueryValueEx(hKey, 'csdversion', nil, nil,@Buffer, @Size);
  Str := Str + string(PChar(@Buffer));
  
  RegCloseKey(hKey);
  label1.Caption := Str; //Tuve que modificarla para que no fuese AutoSize
                                //De otro modo lo da en varias lineas
end;

Gracias por la ayuda
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener version de Windows ManuelPerez Varios 4 14-04-2008 19:00:04
Windows CE version 4 y 5 Punzo La Taberna 0 18-04-2007 01:58:57
funcion para saber la version de windows mismail API de Windows 1 11-02-2007 12:58:41
como puedo hacer para cambiar un archivo de excel con versión 2.1 a versión 8.0 RONPABLO Servers 4 23-01-2006 06:02:38
Version windows'?? vtdeleon Varios 8 17-04-2005 18:48:27


La franja horaria es GMT +2. Ahora son las 12:04:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi