PDA

Ver la Versión Completa : ¿Saber si es un vista x32 o x64?


mayusod
17-03-2008, 11:02:30
Alguien sabe si existe una api o reseña en el registro o algo que me pueda indicar si el sistema operativo en un vista de 32 bit o de 64 :confused:

dec
17-03-2008, 12:44:15
Hola,

No estoy seguro, pero, parece que podría usarse la función "IsWow64Process()" (http://msdn2.microsoft.com/en-us/library/ms684139(VS.85).aspx). Aquí tienes una posible implementación en Delphi (http://www.delphidabbler.com/articles?article=23&part=5). La copio aquí por si las moscas:


class function TOSInfo.IsWOW64: Boolean;
type
TIsWow64Process = function( // Type of IsWow64Process API fn
Handle: THandle;
var Res: BOOL
): BOOL; stdcall;
var
IsWow64Result: BOOL; // result from IsWow64Process
IsWow64Process: TIsWow64Process; // IsWow64Process fn reference
begin
// Try to load required function from kernel32
IsWow64Process := GetProcAddress(
GetModuleHandle('kernel32'), 'IsWow64Process'
);
if Assigned(IsWow64Process) then
begin
// Function is implemented: call it
if not IsWow64Process(GetCurrentProcess, IsWow64Result) then
raise Exception.Create('Bad process handle');
// Return result of function
Result := IsWow64Result;
end
else
// Function not implemented: can't be running on Wow64
Result := False;
end;

ZayDun
17-03-2008, 13:26:58
En la secuencia de arranque del vista se carga el "hibrsm32.exe" o hibrsm64.exe tan solo busca donde esta ese archivo y comprueba si es 32 o 64. tambien creo que puedes comprobar la ruta de la carpeta \Windows\ SysWow64 para x64 o \Windows\system32 para x32. Saludos