#include <lm.h>
#pragma comment(lib, "netapi32.lib")
WKSTA_INFO_100 *pWkstaInfo = NULL;
int nVersion = 0;
NET_API_STATUS nRes = NetWkstaGetInfo(NULL, 100, (LPBYTE *)&pWkstaInfo);
if (nRes == NERR_Success)
{
DWORD dwMajor = pWkstaInfo->wki100_ver_major;
DWORD dwMinor = pWkstaInfo->wki100_ver_minor;
NetApiBufferFree(pWkstaInfo);
}
typedef struct _WKSTA_INFO_100 {
DWORD wki100_platform_id;
LMSTR wki100_computername;
LMSTR wki100_langroup;
DWORD wki100_ver_major;
DWORD wki100_ver_minor;
}WKSTA_INFO_100, *PWKSTA_INFO_100, *LPWKSTA_INFO_100;
通过以上方式则可以正确获取Window各版本信息。。
BOOL GetVersionEx( LPOSVERSIONINFO lpVersionInformation);
typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[128];
} OSVERSIONINFO;