;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;Function: Display the Windows type
; Author:purple endurer
; Develop: MASM32 V8
;Log
;------------------------------------
; 2005-04-29 Create
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
.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
GetWinType
PROTO
.data
g_szWin95
db
"Windows 95", 0
g_szWin98
db
"Windows 98", 0
g_szWinMe
db
"Windows Mellinnium", 0
g_szWinNT351
db
"Windows NT 3.51", 0
g_szWinNT40
db
"Windows NT 4.0", 0
g_szWin2000
db
"Windows 2000", 0
g_szWinXP
db
"Windows XP", 0
g_szWin2003
db
"Windows Server 2003", 0
g_szUnknow
db
"Unknow", 0
.data?
g_OsVerInfo OSVERSIONINFO <>
.code
start:
mov g_OsVerInfo.dwOSVersionInfoSize,
SIZEOF OSVERSIONINFO
invoke
GetVersionEx,
ADDR g_OsVerInfo
.if
eax != 0
invoke GetWinType
invoke
MessageBox, NULL,
eax,
eax, MB_OK
.endif
invoke
ExitProcess, NULL
;//
;Function: Get the Windows type
; Input: g_OsVerInfo
; Output: Pointer to the string of windows type
;//
GetWinType
proc
push
ebx
;用ebx作为临时变量
mov
eax,
OFFSET g_szUnknow
;假设返回值为Unknow
mov
ebx, g_OsVerInfo.dwPlatformId
.if
ebx==1
mov
ebx, g_OsVerInfo.dwMinorVersion
.IF
ebx==0
mov
eax,
OFFSET g_szWin95
.ELSEIF
ebx==10
mov
eax,
OFFSET g_szWin98
.ELSEIF
ebx==90
mov
eax,
OFFSET g_szWinMe
.ENDIF
.elseif
ebx==2
mov
ebx, g_OsVerInfo.dwMajorVersion
.IF
ebx==3
mov
eax,
OFFSET g_szWinNT351
.ELSEIF
ebx==4
mov
eax,
OFFSET g_szWinNT40
.ELSEIF
ebx==5
mov
ebx, g_OsVerInfo.dwMinorVersion
.if
ebx==0
mov
eax,
OFFSET g_szWin2000
.elseif
ebx==1
mov
eax,
OFFSET g_szWinXP
.elseif
ebx==2
mov
eax,
OFFSET g_szWin2003
.endif
.ENDIF
.endif
pop
ebx
ret
GetWinType
endp
end start
[原创]用MASM32编程获取windows类型
原创
©著作权归作者所有:来自51CTO博客作者PurpleEndurer的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java 根据HttpEntity 中contenttype获取文件类型
java 根据HttpEntity 中contenttype获取文件类型
apache HTTP Apache -
用MASM32编程截取屏幕
;; 功能: 把屏幕内容拷贝到剪贴板并显
编程 null include dialog command -
MASM32编程分析、获取命令行参数
我们在执行应用程序时经常会指定命令行参数来传递程序运行所需要的数据,控制程序的执行。高级程序设计语言会自动分析和提供命令行参数
编程 语言 汇编 windows api -
MASM32编程获取系统服务列表及其状态
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
编程 service null c include -
MASM32编程枚举Windows计划任务(Schedule Job)
Windows提供了API函数:NetScheduleJobEnum可以用于枚举Windo
任务 windows 编程 command null -
masm32 链接问题
网上也没找到解决办法,经过后来思考了一下,会不会是link.exe这个玩意有问题?当我参考资料学
汇编 Windows 参考资料 绝对路径 -
MASM32编程通过WMI获取杀毒软件信息
Windows XP SP2 开始提供安全中心,杀毒软件会向安全中心注册报道,这样windows就可以检测到系统中是否安装了杀毒软件。
杀毒软件 编程 null vbscript windows