RE:detectar que windows tengo
Puedes usar el control sysInfo o la siguiene función API:
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Cadena de mantenimiento para uso de PSS
End Type
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
Private Sub Form_Click()
Dim osInfo As OSVERSIONINFO
osInfo.dwOSVersionInfoSize = Len(osInfo)
GetVersionEx osInfo
Me.Print "versión = " & CStr(osInfo.dwMajorVersion) & "." & CStr(osInfo.dwMinorVersion)
End Sub