#include "loadlib.as" #define _print mes ;================================================================================= ; ; ll_libload, ll_getproc, ll_callfunc, ll_libfreeの使用例 2 ; ;================================================================================= ll_libload hKernel32,"kernel32.dll" if stat!0 : _print "ll_libload 失敗" : end ll_getproc F_GetVersionEx, "GetVersionExA", hKernel32 if stat!0 : _print "ll_getproc 失敗" : goto _free_kernel32_ alloc os_ver_info,148 os_ver_info.0=148 ll_getptr os_ver_info : ll_ret param.0 ll_callfunc param, 1, F_GetVersionEx #define VER_PLATFORM_WIN32s 0 #define VER_PLATFORM_WIN32_WINDOWS 1 #define VER_PLATFORM_WIN32_NT 2 MajorVersion=os_ver_info.1 MinorVersion=os_ver_info.2 if os_ver_info.4=VER_PLATFORM_WIN32s : Platform = "Win32s on Windows 3.1." if os_ver_info.4=VER_PLATFORM_WIN32_WINDOWS : Platform = "Win32 on Windows 95." if (os_ver_info.4=VER_PLATFORM_WIN32_WINDOWS)&(MinorVersion>0) : Platform = "Win32 on Windows 98." if os_ver_info.4=VER_PLATFORM_WIN32_NT : Platform = "Win32 on Windows NT." _print "Platform is "+Platform _print "MajorVersion="+MajorVersion+" MinorVersion="+MinorVersion bldnum=os_ver_info.3 >> 16 & $ffff mjr_mnr=os_ver_info.3 & $ffff _print "Build Number "+bldnum+"(major&minor version "+mjr_mnr+")" CSDVersion="" peek CSDVersion,os_ver_info.5 _print "CSDVersion="+CSDVersion *_free_kernel32_ ll_libfree hKernel32 stop ;typedef struct _OSVERSIONINFO{ os_ver_info ; DWORD dwOSVersionInfoSize; +$00 os_ver_info.0 ; DWORD dwMajorVersion; +$04 os_ver_info.1 ; DWORD dwMinorVersion; +$08 os_ver_info.2 ; DWORD dwBuildNumber; +$0C os_ver_info.3 ; DWORD dwPlatformId; +$10 os_ver_info.4 ; TCHAR szCSDVersion[ 128 ]; +$14 os_ver_info.5 ;} OSVERSIONINFO; ; BOOL GetVersionEx( ; LPOSVERSIONINFO lpVersionInformation // pointer to version information structure ; );