首页
社区
课程
招聘
[原创]SoftModalMessageBox.asm
发表于: 2011-8-20 09:07 7940

[原创]SoftModalMessageBox.asm

2011-8-20 09:07
7940

;关于函数的返回值,也就是你选择了哪个按钮,有待进一步的研究。
.386
.model flat,stdcall
option casemap:none
include windows.inc

include kernel32.inc
includelib kernel32.lib

include user32.inc
includelib user32.lib

.code
szSoftModalMessageBox db "SoftModalMessageBox",0
szuser32 db "user32.dll",0

huser32 dd 0
pSoftModalMessageBox dd 0

align 4

u_ok dw 'o','k',0
u_no dw 'n','o',0

bufid dword 1,2;,0 ;按钮id的序列,可以增加。也可以一个按钮也没有哟!最多支持有多少个按钮,你可以试一下!
bufstr dword offset u_ok,offset u_no;,0 ;按钮的内容,可以增加。

szCaption dw 'm','a','d','e',' ','b','y',' ','c','o','r','r','e','y',0
szText dw 'W','e','l','l','c','o','m','e',' ','t','o',' ','H','t','t','p',':','/','/','c','o','r','r','e','y','.','w','e','b','s','.','c','o','m',0

align 4 ;最好加上,不加也没有事。
mbd dd 28h ;sizeof MSGBOXPARAMS
    dd 0 ;hwndOwner
    dd 0 ;hInstance
    dd offset szText ;lpszText
    dd offset szCaption ;lpszCaption
    dd 0 ;dwStyle
    dd 0 ;lpszIcon
    dd 0 ;dwContextHelpId
    dd 0 ;lpfnMsgBoxCallback
    dd 0 ;dwLanguageId
    ;MSGBOXPARAMS 结构结束。一下是附加的定义的结构。
    dd 0 ;pwndOwner
    dd 0 ;wLanguageId
    ;dd 0 ;windows 7-64下要加这一行,可能结构变了,不然:不会显示按钮,具体的啥功能我也不知道,还没有实验。
          ;因为这个,我浪费了大半天的时间。在非windows 7-64操作系统下要去掉这一行。版权归我所有,我的新发现。
    dd offset bufid ;pidButton
    dd offset bufstr ;ppszButtonText
    dd 2 ;cButtons 按钮的数量。
    dd 0 ;DefButton 默认的按钮。
    dd 1 ;CancelId 0 1
    dd -1 ;Timeout
    ;注释:下面这个是我自己附加的。
    dd 0 ;奇哉怪哉,这样点击就不会出错了,下面的加align 4也不行。自己的新发现,必须加这一行。
   
align 4
psi SYSTEM_INFO <>

start:
align 4

invoke LoadLibrary,addr szuser32
mov huser32,eax

invoke GetProcAddress,huser32,addr szSoftModalMessageBox
mov pSoftModalMessageBox,eax

pushad
;pushf

push offset mbd
call pSoftModalMessageBox

;popf
popad

exit:invoke ExitProcess,0
end start
;made at 2011.08.17


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (4)
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错····
2011-12-10 14:57
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
;注释:下面这个是我自己附加的。
    dd 0 ;奇哉怪哉,这样点击就不会出错了,下面的加align 4也不行。自己的新发现,必须加这一行。

应该是还有一个参数吧  不设置 导致堆栈不平衡。报错!!
2011-12-10 15:53
0
雪    币: 48
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
额,这是什么东东
2011-12-10 16:15
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
MessageBox内部就是拿SoftModalMessageBox实现的!
2011-12-10 16:21
0
游客
登录 | 注册 方可回帖
返回
//