Se que hay otras menares de detectar la versión como si existe "Documents and Setting", si existe d3d12.exe, pero me gustaría algo mas general.
En Batch seria asi y siempre funciona ya que 'ver' es igual en modo compatibilidad.
Código
En Visual Basic Script seria:
Código
Set oWMI = GetObject("winmgmts:\\.\root\CIMV2") Set cWin = oWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem") For Each OS In cWin message = MSGBOX(OS.Version, 16, "La version es:") If Split(OS.Version,".")(0) = 5 Then message = MSGBOX("Windows 2000 o XP detectado", 16, "Mensaje") End If Next
Pero en C no me funciona, ademas de que GetVersion devuelve otro valor en win8.1 y win10.
Código
#include <stdio.h> #include <windows.h> int main() { DWORD dwVersion = GetVersion(); DWORD dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion))); DWORD dwMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion))); DWORD dwBuild = 0; if (dwVersion < 0x80000000) dwBuild = (DWORD)(HIWORD(dwVersion)); if (dwMajorVersion == 5) }
Lo que busco es lo que en el ejemplo seria el valor de la variable dwMajorVersion