En mi sistema Windows 7, la función GetVersionEx API de Windows devuelve "6.0", que indica Windows Vista, cuando should devuelve "6.1".¿GetVersionEx no funciona en Windows 7?
Si importa, he utilizado el siguiente código de Delphi:
function winver: string;
var
ver: TOSVersionInfo;
begin
ver.dwOSVersionInfoSize := SizeOf(ver);
if GetVersionEx(ver) then
with ver do
result := IntToStr(dwMajorVersion) + '.' + IntToStr(dwMinorVersion) + '.' + IntToStr(dwBuildNumber) + ' (' + szCSDVersion + ')';
end;
y la cadena "6.0.6002 (Service Pack 2)" fue devuelto.
¿No es esto muy extraño?
Delphi 2009 no es realmente antiguo ... –
También debe recordar que si está creando un proceso secundario que haya configurado la compatibilidad con, por ejemplo, Vista SP2, ese proceso secundario también heredará ese comportamiento. Ejemplo: está usando TotalCommander con compatibilidad VistaSP2, luego cada proceso iniciado por TC también usará compatibilidad con VistaSP2. – kibab
Ahora encontré que GetVersionEx devuelve Vista cuando mi aplicación se ejecuta a través del depurador Delphi 2009, pero Windows 7 cuando la aplicación se ejecuta sola. –