detectar si el Sistema Operativo es de 32 o 64 bits

detectar si el Sistema Operativo es de 32 o 64 bits

Postby mgsoft » Fri Jan 08, 2010 12:14 pm

Hola:

¿Hay alguna forma de saberlo?.

Muchas gracias, :D
Saludos,

Eduardo
User avatar
mgsoft
 
Posts: 422
Joined: Mon Aug 17, 2009 12:18 pm
Location: España

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby karinha » Fri Jan 08, 2010 5:57 pm

???
Code: Select all  Expand view

IF ISWINXP()
   ? [32]
ELSE
    ? [16]
ENDIF
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7825
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby Antonio Linares » Fri Jan 08, 2010 6:39 pm

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby mgsoft » Fri Jan 08, 2010 11:25 pm

Maestro Antonio:

Muchas gracias por la info,

¿Cómo detecto si existe el proceso IsWow64Process?.

Muchas gracias, :D
Saludos,

Eduardo
User avatar
mgsoft
 
Posts: 422
Joined: Mon Aug 17, 2009 12:18 pm
Location: España

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby Antonio Linares » Fri Jan 08, 2010 11:47 pm

Aqui tienes el código adaptado y funcionando. Ojo no lo he probado en Windows 64, solo en Windows 7 32.
http://msdn.microsoft.com/en-us/library/ms684139(VS.85).aspx

Code: Select all  Expand view
function Main()

   if ISWOW64()
      MsgInfo( "Windows 64 bits" )
   else
      MsgInfo( "Windows 32 bits" )
   endif

return nil

#pragma BEGINDUMP

#include <windows.h>
#include <hbapi.h>

typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);

LPFN_ISWOW64PROCESS fnIsWow64Process;

HB_FUNC( ISWOW64 )
{
    BOOL bIsWow64 = FALSE;

    fnIsWow64Process = ( LPFN_ISWOW64PROCESS )
                       GetProcAddress( GetModuleHandle( TEXT( "kernel32" ) ), "IsWow64Process" );
 
    if( fnIsWow64Process )
        bIsWow64 = ! fnIsWow64Process( GetCurrentProcess(), &bIsWow64 );

    hb_retl( bIsWow64 );
}  

#pragma ENDDUMP
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby mgsoft » Sat Jan 09, 2010 4:04 pm

Hola:

Al final hice:

function IsOS64Bits()

LOCAL Win64 := GetENV("ProgramFiles(x86)")
LOCAL Result := .F.

IF !Empty(Win64)
Result := .T.
ELSE
Result := .F.
ENDIF


RETURN( Result )



Un saludo :D
Saludos,

Eduardo
User avatar
mgsoft
 
Posts: 422
Joined: Mon Aug 17, 2009 12:18 pm
Location: España

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby Antonio Linares » Sat Jan 09, 2010 10:07 pm

Puedes simplificarla asi :-)
Code: Select all  Expand view
function IsOS64Bits()

return ! Empty( GetEnv( "ProgramFiles(x86)" ) )
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby sysctrl2 » Mon Jan 11, 2010 8:15 pm

o mas facil, Clic alterno a MIPC/Propiedades.. :D :D :)
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1020
Joined: Mon Feb 05, 2007 7:15 pm

Re: detectar si el Sistema Operativo es de 32 o 64 bits

Postby mgsoft » Tue Jan 12, 2010 10:35 am

Antonio:

Muchas gracias.

César:

Lo que busco es detectarlo desde el código, de modo que la solución del maestro es la adecuada.

:D
Saludos,

Eduardo
User avatar
mgsoft
 
Posts: 422
Joined: Mon Aug 17, 2009 12:18 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 37 guests