0
COBOL Código:
IDENTIFICATION DIVISION. PROGRAM-ID. WINVERS. AUTHOR. KUK. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. DATA DIVISION. WORKING-STORAGE SECTION. 01 OSVERSIONINFO TYPEDEF. * The size of this data structure, in bytes. Set this member to sizeof(OSVERSIONINFO). 05 dwOSVersionInfoSize PIC S9(9) COMP-5. * The major version number of the operating system. For more information, see Remarks. 05 dwMajorVersion PIC S9(9) COMP-5. * The minor version number of the operating system. For more information, see Remarks. 05 dwMinorVersion PIC S9(9) COMP-5. * The build number of the operating system. 05 dwBuildNumber PIC S9(9) COMP-5. * The operating system platform. This member can be the following value:* * - VER_PLATFORM_WIN32_NT = 2 * The operating system is Windows 7, Windows Server 2008, Windows Vista, * Windows Server 2003, Windows XP, or Windows 2000. 05 dwPlatformId PIC S9(9) COMP-5. * A null-terminated string, such as "Service Pack 3", that indicates the latest Service Pack * installed on the system. If no Service Pack has been installed, the string is empty. 05 szCSDVersion PIC X(128). 01 WS-OSINFO TYPE OSVERSIONINFO. 01 STATUS-CODE PIC S9(4) COMP-5. LINKAGE SECTION. 01 LNK-WV-DATA. 05 LNK-WV-OUTPUT. 10 LNK-WV-RC PIC 9(2). 10 LNK-WV-VERS PIC X(100). 10 LNK-WV-SP PIC X(50). PROCEDURE DIVISION USING LNK-WV-DATA. INITIALIZE LNK-WV-DATA REPLACING NUMERIC DATA BY ZEROS ALPHANUMERIC DATA BY SPACES MOVE 148 TO dwOSVersionInfoSize OF WS-OSINFO CALL "GetVersionExA" WITH STDCALL USING BY REFERENCE WS-OSINFO RETURNING STATUS-CODE IF STATUS-CODE = ZEROS MOVE 99 TO LNK-WV-RC MOVE SPACES TO LNK-WV-VERS GOBACK END-IF MOVE ZEROS TO LNK-WV-RC EVALUATE TRUE ALSO TRUE WHEN dwMajorVersion = 6 ALSO dwMinorVersion = 3 MOVE "Windows 8.1" TO LNK-WV-VERS WHEN dwMajorVersion = 6 ALSO dwMinorVersion = 2 MOVE "Windows 8" TO LNK-WV-VERS WHEN dwMajorVersion = 6 ALSO dwMinorVersion = 1 MOVE "Windows 7" TO LNK-WV-VERS WHEN dwMajorVersion = 6 ALSO dwMinorVersion = 0 MOVE "Windows Vista" TO LNK-WV-VERS WHEN dwMajorVersion = 5 ALSO dwMinorVersion = 2 MOVE "Windows Server 2003" TO LNK-WV-VERS WHEN dwMajorVersion = 5 ALSO dwMinorVersion = 1 MOVE "Windows XP" TO LNK-WV-VERS WHEN dwMajorVersion = 5 ALSO dwMinorVersion = 0 MOVE "Windows 2000" TO LNK-WV-VERS WHEN OTHER MOVE "Windows UNKNOWN" TO LNK-WV-VERS END-EVALUATE INSPECT szCSDVersion REPLACING ALL X"00" BY SPACES MOVE szCSDVersion TO LNK-WV-SP GOBACK .
Marcadores