;Microsoft (R) Incremental Linker Version 5.12.8078 ;Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
;stub.exe : warning LNK4060: stub file missing full MS-DOS header; rebuild stub with /KNOWEAS 16-bit LINK option 逆@风@者
; Date Summary ; ------------------------------------------------------- ; 2002.04.07 Created! ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
.386 .model flat, stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib
bDetailInfo equ 0
.data szMsgBoxTitle db "当前操作系统",0
if bDetailInfo ;?????? bDetailInfo szWin31 db "Win32s on Windows 3.1 ", 0 szWin9x db "Win32 on Windows 95 ", 0 else szWin31 db "Windows 3.1 ", 0 szWin9x db "Windows 95 ", 0 endif ;?????? bDetailInfo
szWinNT db "Windows NT ", 0
szFormat4OsVer db "%lu.%lu.%lu", 0 szGetOsInfoFail db "取操作系统信息失败!", 0
.data? OsVer OSVERSIONINFO <> szOsVerInfo db 255 dup (?) szOsVerInfoTmp db 255 dup (?)
.code start: mov OsVer.dwOSVersionInfoSize, SIZEOF OSVERSIONINFO invoke GetVersionEx, ADDR OsVer .if eax mov eax, OsVer.dwPlatformId ;Identifies the build number of the operating ;system in the low-order word For Win9X
.if eax == VER_PLATFORM_WIN32s mov esi, OFFSET szWin31 and OsVer.dwBuildNumber, 0FFFFh .elseif eax == VER_PLATFORM_WIN32_WINDOWS mov esi, OFFSET szWin9x and OsVer.dwBuildNumber, 0FFFFh
.else ; eax ==VER_PLATFORM_WIN32_NT mov esi, OFFSET szWinNT .endif
invoke lstrcpy, ADDR szOsVerInfo, esi
invoke wsprintf, ADDR szOsVerInfoTmp,\ ADDR szFormat4OsVer, OsVer.dwMajorVersion,\ OsVer.dwMinorVersion, OsVer.dwBuildNumber
invoke lstrcat, ADDR szOsVerInfo, ADDR szOsVerInfoTmp invoke lstrcat, ADDR szOsVerInfo, ADDR OsVer.szCSDVersion mov edi, OFFSET szOsVerInfo mov esi, MB_OK OR MB_ICONINFORMATION .else mov edi, OFFSET szGetOsInfoFail mov esi, MB_OK OR MB_ICONWARNING .endif
invoke MessageBox, NULL, edi, addr szMsgBoxTitle, esi invoke ExitProcess,NULL
end start 本文章更多内容:<<上一页 - 1 - 2 |