Ver Mensaje Individual
  #6  
Antiguo 12-12-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
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