asm
******************************************************
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
ICO_MAIN equ 1
DLG_MAIN equ 1
ID_TIMER equ 1
IDC_HOUR equ 1
IDC_MINUTE equ 2
IDC_SECOND equ 3
IDC_USERHOUR equ 4
IDC_USERMINUTE equ 5
.data?
dwUserHour dd ?
dwUserMinute dd ?
hInstance dd ?
stSystemTime SYSTEMTIME <>
.const
szAbout db '错误演示',0
szText db '显示错误',0
.code
_ProcDlgMain proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
local @idCommand
mov eax,uMsg
.if eax == WM_TIMER
invoke GetLocalTime,addr stSystemTime
invoke SetDlgItemInt,hWnd,IDC_HOUR,stSystemTime.wHour,FALSE
invoke SetDlgItemInt,hWnd,IDC_MINUTE,stSystemTime.wMinute,FALSE
invoke SetDlgItemInt,hWnd,IDC_SECOND,stSystemTime.wSecond,FALSE
movzx eax,stSystemTime.wHour
movzx ebx,stSystemTime.wMinute
.if eax == dwUserHour && ebx == dwUserMinute && stSystemTime.wSecond == 0
invoke KillTimer,hWnd,ID_TIMER
invoke MessageBox,hWnd,addr szText,addr szAbout,MB_OK or MB_ICONINFORMATION
.endif
.elseif eax == WM_COMMAND
mov eax,wParam
.if ax == IDC_USERHOUR || ax == IDC_USERMINUTE
movzx eax,ax
mov @idCommand,eax
invoke GetDlgItemInt,hWnd,ax,NULL,FALSE
.if @idCommand == IDC_USERHOUR && eax >= 0 && eax <= 23
mov dwUserHour,eax
.elseif @idCommand == IDC_USERMINUTE && eax >= 0 && eax <= 59
mov dwUserMinute,eax
.else
invoke SetDlgItemText,hWnd,@idCommand,NULL
invoke MessageBox,hWnd,addr szText,addr szAbout,MB_OK or MB_ICONINFORMATION
.endif
.endif
.elseif eax == WM_INITDIALOG
invoke SetTimer,hWnd,ID_TIMER,1000,NULL
.elseif eax == WM_CLOSE
invoke KillTimer,hWnd,ID_TIMER
invoke EndDialog,hWnd,NULL
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,addr _ProcDlgMain,NULL
invoke ExitProcess,NULL
end start
rc
******************************************************
#include <resource.h>
#define ICO_MAIN 1
#define DLG_MAIN 1
#define IDC_HOUR 1
#define IDC_MINUTE 2
#define IDC_SECOND 3
#define IDC_USERHOUR 4
#define IDC_USERMINUTE 5
ICO_MAIN ICON "Main.ico"
DLG_MAIN DIALOG 250, 250, 150, 90
STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "错误程序"
FONT 9, "宋体"
{
GROUPBOX "当前时间", -1, 5, 3, 138, 30
LTEXT "时:", -1, 10, 17, 20, 10
LTEXT "", IDC_HOUR, 30, 17, 10, 8
LTEXT "分:", -1, 60, 17, 20, 10
LTEXT "", IDC_MINUTE, 80, 17, 10, 8
LTEXT "秒:", -1, 110, 17, 20, 10
LTEXT "", IDC_SECOND, 130, 17, 10, 8
GROUPBOX "设定时间", -1, 5, 35, 138, 30
LTEXT "时:", -1, 10, 49, 20, 10
EDITTEXT IDC_USERHOUR, 30, 49, 15, 10, ES_NUMBER
LTEXT "分:", -1, 60, 49, 20, 10
EDITTEXT IDC_USERMINUTE, 80, 49, 15, 10, ES_NUMBER
}
消息框弹出错误……
求助……
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课