Here is some modified code (f95) - see the subroutine get_os_info:
WINAPP
program test
IMPLICIT NONE
integer*4 bits,err_code
character*256 name,version,build
call get_os_info(name,version,build,bits,err_code)
print*,'Name ',name(1:len_trim(name))
print*,'Version ',version(1:len_trim(version))
print*,'Build ',build(1:len_trim(build))
print*,'Bits ',bits
print*,'err_code ',err_code
end
! ---------------------------------------------------------------------
subroutine get_os_info(name,version,build,bits,err_code)
IMPLICIT NONE
include 'win32api.ins'
integer,parameter::HKEY_LOCAL_MACHINE=Z'80000002'
integer*4 hKey,l,j,bits,err_code
character*256 RegPath,name,version,build
err_code = -1
name = ' '
version = ' '
build = ' '
bits = 32
RegPath = 'Software\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion'
j = RegOpenKey(HKEY_LOCAL_MACHINE,trim(RegPath),hKey)
if (j /= 0) then
RegPath = 'Software\\Microsoft\\Windows NT\\CurrentVersion'
j = RegOpenKey(HKEY_LOCAL_MACHINE,trim(RegPath),hKey)
else
bits = 64
end if
if (j == 0) then
l = 256
j = RegQueryValueEx(hKey,'ProductName',CCORE1(0),CCORE1(0),name,l)
l = 256
j = RegQueryValueEx(hKey,'CurrentVersion',CCORE1(0),CCORE1(0),version,l)
l = 256
j = RegQueryValueEx(hKey,'CurrentBuildNumber',CCORE1(0),CCORE1(0),build,l)
end if
j = RegCloseKey(hKey)
err_code = 0
return
end
Regards - Wilfried