Tengo una aplicacion que se cuando se inicia se lanza el servidor mysql, el problema es que hay un servidor para cada tipo de SO (32 y 64 bits) entonces.... buscando (luego de intentos fallidos a mano) logre dar con esta funcion
En un modulo (o en un form como quieran )
Código
Option Explicit ' Extracto ' http://www.vbmonster.com/Uwe/Forum.aspx/vb-winapi/5690/API-to-determine-if-OS-is-32bit-or-64-bit Private Declare Function GetVersion Lib "kernel32" () As Long Private Declare Sub GetNativeSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO) Private Type SYSTEM_INFO wProcessorArchitecture As Integer wReserved As Integer dwPageSize As Long lpMinimumApplicationAddress As Long lpMaximumApplicationAddress As Long dwActiveProcessorMask As Long dwNumberOfProcessors As Long dwProcessorType As Long dwAllocationGranularity As Long wProcessorLevel As Integer wProcessorRevision As Integer End Type Private Const PROCESSOR_ARCHITECTURE_IA64 = 6 Private Const PROCESSOR_ARCHITECTURE_AMD64 = 9 Public Function IsOS64Bit() As Boolean ' Llamar desde Win2k en adelante ' La verdad dudo de la existencia de Win2k 64 bits... ' pero en el msdn decia que a partir de win2k se puede llamar a la funcion xD If LoByte(LoWord(GetVersion())) >= 5 Then Dim si As SYSTEM_INFO Call GetNativeSystemInfo(si) IsOS64Bit = _ (si.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64) Or _ (si.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_IA64) End If End Function Private Function LoWord(ByVal Numero As Long) As Long ' Devuelve el LoWord del número pasado como parámetro LoWord = Numero And &HFFFF& End Function Private Function LoByte(ByVal Numero As Integer) As Integer ' Devuelve el LoByte del número pasado como parámetro LoByte = Numero And &HFF End Function
Y para probarlo en el form load
Código
Private Sub Form_Load() If IsOS64Bit Then MsgBox "Tienes un SO de 64 bits" Else MsgBox "Tienes un SO de 32 bits" End If End Sub
No me habia dado cuenta que 0 representaba un procesador de 32bit.... y yo decia que no me devolvia nada
Alguien que tenga un so de 64 bits que lo pruebe por favor
Saludos!
Mi mensaje 888 ._.