Como saber si es W2000 o Xp

Gottwald
13 de Agosto del 2004
Bueno pues esa es la pregunta como se si es windows 2000 o XP por que estoy haciendo una aplicacion en la que declaro esto:

Private Declare Function CeRapiInit Lib "c:winntsystem32rapi.dll" () As Long

pero esto solo sirve para w2000

para el xp es diferente es :

Private Declare Function CeRapiInit Lib "c:windowssystem32rapi.dll" () As Long

como puedo hacerlo?

Bartolom
13 de Agosto del 2004
Y por qué en vez de la ruta explícita no utilizas un comodín de ella, por ejemplo %sysdir% (nos indica la ruta de los archivos de la carpeta system 32) o %windir%system32 ?

Saludos!
Bartolom
Chile

Leon_87
13 de Agosto del 2004
Te recomiendo crear una funcion que verifique si existe uno de los dos archivos, por ejemplo:

Private Function Existe(ByVal unFichero As String) As Boolean
On Local Error Resume Next

Existe = Len(Dir$(unFichero))
If Err Then
Existe = False
End If
Err = 0
On Local Error GoTo 0
End Function

Ahi introducimos como parámetro unFichero. el valor de este deberá ser la ruta completa
en este caso
unFichero = "c:windowssystem32rapi.dll"
si existe, la funcion devolverá un valor true, si no, un valor false, ya que la funcion no hace más que medir el número de cfaracteres que tiene el nombre del archivo, si no existe, el 0, y si existe es cualquier otro numero, en este caso el 0 seria False y el otro numero True.

despues basta un if:
If existe(unFichero) = true Then
'el SO es winxp
Else
'el SO es win2000
End If

espero haberte sido de ayuda