°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡@hSysMenu
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡eax£»uMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡WM_CREATE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GetSubMenu£»hMenu£»1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hSubMenu£»eax
£»********************************************************************
£»ÔÚϵͳ²Ëµ¥ÖÐÌí¼Ó²Ëµ¥Ïî
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GetSystemMenu£»hWnd£»FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@hSysMenu£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡AppendMenu£»@hSysMenu£»MF_SEPARATOR£»0£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡AppendMenu£»@hSysMenu£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0£»IDM_HELP£»offset¡¡szMenuHelp
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡AppendMenu£»@hSysMenu£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0£»IDM_ABOUT£»offset¡¡szMenuAbout
£»********************************************************************
£»¡¡´¦Àí²Ëµ¥¼°¼ÓËÙ¼üÏûÏ¢
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡¡¡eax¡¡¡¡¡¡WM_MAND
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡_DisplayMenuItem£»wParam
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»wParam
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡movzx¡¡¡¡¡¡eax£»ax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡IDM_EXIT
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call¡¡¡¡¡¡¡¡_Quit
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡¡¡eax¡¡¡·=¡¡¡¡IDM_TOOLBAR¡¡&&¡¡eax¡¡=¡¡¡¡IDM_BIG¡¡&&¡¡eax¡¡¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
_WinMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡@stWndClass£ºWNDCLASSEX
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡@stMsg£ºMSG
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡@hAccelerator
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡GetModuleHandle£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡hInstance£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡LoadMenu£»hInstance£»IDM_MAIN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡hMenu£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡LoadAccelerators£»hInstance£»IDA_MAIN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@hAccelerator£»eax
£»********************************************************************
£»¡¡×¢²á´°¿ÚÀà
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡RtlZeroMemory£»addr¡¡@stWndClass£»sizeof¡¡@stWndClass
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡LoadIcon£»hInstance£»ICO_MAIN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hIcon£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hIconSm£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡hInstance
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hInstance
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£cbSize£»sizeof¡¡WNDCLASSEX
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£style£»CS_HREDRAW¡¡or¡¡CS_VREDRAW
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£lpfnWndProc£»offset¡¡_ProcWinMain
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hbrBackground£»COLOR_WINDOW¡¡£«¡¡1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@stWndClass¡£lpszClassName£»offset¡¡szClassName
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡RegisterClassEx£»addr¡¡@stWndClass
£»********************************************************************
£»¡¡½¨Á¢²¢ÏÔʾ´°¿Ú
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡CreateWindowEx£»WS_EX_CLIENTEDGE£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡offset¡¡szClassName£»offset¡¡szCaptionMain£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WS_OVERLAPPEDWINDOW£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡100£»100£»400£»300£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL£»hMenu£»hInstance£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡hWinMain£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡ShowWindow£»hWinMain£»SW_SHOWNORMAL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡UpdateWindow£»hWinMain
£»********************************************************************
£»¡¡ÏûϢѻ·
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£while¡¡¡¡¡¡TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡GetMessage£»addr¡¡@stMsg£»NULL£»0£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£break¡¡¡¡¡¡¡£if¡¡eax¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡TranslateAccelerator£»hWinMain£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@hAccelerator£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡TranslateMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DispatchMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endw
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_WinMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
start£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call¡¡¡¡¡¡¡¡¡¡_WinMain
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡ExitProcess£»NULL
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end¡¡¡¡¡¡¡¡¡¡¡¡start
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ5Õ¡¡Ê¹ÓÃ×ÊÔ´
5¡£1¡¡²Ëµ¥ºÍ¼ÓËÙ¼ü£¨5£©
¡¡¡¡¡¡¡¡
1¡£¡¡¼ÓÔز˵¥
ÔÚ´°¿ÚÖмÓÔز˵¥µÄ·½·¨ÔÚµÚ4ÕÂÒѾÌá¼°£¬·½·¨ÓÐÁ½¸ö£ºÒ»ÊÇÔÚ×¢²á´°¿ÚÀàµÄʱºòÖ¸¶¨ÀàµÄĬÈϲ˵¥£»¶þÊÇÔÚ½¨Á¢´°¿ÚµÄʱºòÔÚ²ÎÊýÖÐÖ¸¶¨²Ëµ¥¾ä±ú¡£Menu¡£asm³ÌÐòÖÐÓõÄÊǵÚ2ÖÖ·½·¨£º
invoke¡¡¡¡¡¡CreateWindowEx£»WS_EX_CLIENTEDGE£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡offset¡¡szClassName£»offset¡¡szCaptionMain£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WS_OVERLAPPEDWINDOW£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡100£»100£»400£»300£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL£»hMenu£»hInstance£»NULL
ÔÚ²ÎÊýÖÐÖ¸³öÁËhMenu¡£²»¹ÜÓÃÄÄÖÖ·½·¨£¬Ê×Ïȶ¼±ØÐëʹÓÃLoadMenuº¯ÊýÀ´»ñÈ¡²Ëµ¥¾ä±úhMenu£¬ÈçÏÂÃæµÄÓï¾ä£º
invoke¡¡¡¡LoadMenu£»hInstance£»IDM_MAIN
mov¡¡hMenu£»eax
Õâ¸öº¯ÊýµÄµÚ1¸ö²ÎÊýÊÇÓÃGetModuleHandle»ñÈ¡µÄʵÀý¾ä±ú£¬µÚ2¸ö²ÎÊýÖ¸¶¨ÐèҪװÈëµÄ²Ëµ¥×ÊÔ´ID£¬º¯Êý·µ»Ø²Ëµ¥¾ä±ú¡£Ôڵõ½²Ëµ¥¾ä±úÒÔºó£¬ÎÒÃÇÏÈ°ÑËü·ÅÈëhMenu±äÁ¿±£´æÆðÀ´ÒÔ±ãºóÓá£
µ±×ÊÔ´ÎļþÖÐÓÃ×Ö·û´®ÎªÃû³Æ¶¨Òå²Ëµ¥¶ø²»ÊÇÓÃÊýÖµµÄʱºò£¬ÀýÈ磺
MainMenu¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡menu¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¶¨Òå²Ëµ¥ÃûΪ×Ö·û´®¡°MainMenu¡±
begin
¡£¡£¡£
end
ÄÇôÔÚ³ÌÐòÖоͱØÐëÓÃ×Ö·û´®Ö¸Õë´úÌæ²Ëµ¥ID×ö²ÎÊý£º
szMenu¡¡¡¡¡¡¡¡¡¡¡¡¡¨MainMenu¡¨£»0¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»ÔÚÊý¾Ý¶ÎÖж¨Òå²Ëµ¥Ãû³Æ×Ö·û´®
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡LoadMenu£»hInstance£»addr¡¡szMenu¡¡¡¡£»ÔÚ³ÌÐòÖÐ×°ÔØ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hMenu£»eax
¡¡ÓÃ×Ö·û´®ÎªÃû³Æ¶¨Òå×ÊÔ´£¬ÔÚ×ÊÔ´×°Ôغ¯ÊýLoadXXXXÖÐÓÃ×Ö·û´®Ö¸Õë×ö²ÎÊý×°È룬Õâʵ¼ÊÉÏÊÇÒ»¸öͨÓõķ½·¨£¬²»½öÊÊÓÃÓڲ˵¥×ÊÔ´£¬¶ÔÓÚÆäËûÀà±ðµÄ×ÊÔ´Ò²ÊÇÊÊÓõġ£ÔÚÆäËû×ÊÔ´µÄ½éÉÜÖоͲ»ÔÙÁíÍâ˵Ã÷ÁË¡£
2¡£¡¡¼ÓÔؼÓËÙ¼ü
ºÍ²Ëµ¥Ò»Ñù£¬¼ÓËÙ¼üÔÚʹÓÃǰҲҪװÈ룬²ÎÊýͬÑùÊÇÔÚ×ÊÔ´½Å±¾ÎļþÖж¨ÒåµÄ¼ÓËÙ¼üID£¬³ÌÐòÖжÔÓ¦µÄÓï¾äÊÇ£º
invoke¡¡¡¡LoadAccelerators£»hInstance£»IDA_MAIN
mov¡¡¡¡¡¡¡¡¡¡@hAccelerator£»eax
ÆäʵÎÒÃÇ×Ô¼ºÔÚ³ÌÐòÖÐÒ²¿ÉÒԺܷ½±ãµØʵÏÖ¼ÓËÙ¼ü¹¦ÄÜ£¬·½·¨ÊÇ£ºÔÚWM_KEYDOWNÏûÏ¢ÖÐÅжϼüÅÌÏûÏ¢²¢°´ÕÕ×Ô¶¨ÒåµÄÂß¼½øÐд¦Àí£¬Ê¹ÓüÓËÙ¼üʵ¼ÊÉÏÊÇÈÃWindowsÌæÎÒÃÇÍê³ÉÕâ¸ö¹¦ÄÜ£¬WindowsʵÏֵķ½·¨ÕýÊÇÔÚÏûϢѻ·Öмì²éWM_KEYDOWNºÍWM_SYSKEYDOWNÏûÏ¢¡£ÏÂÃæÊÇʹÓüÓËÙ¼üʱÏûϢѻ·µÄ´úÂ룬Çë×¢Òâ´ÖÌå×Ö²¿·Ö£º
¡£while¡¡¡¡¡¡TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡GetMessage£»addr¡¡@stMsg£»NULL£»0£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£break¡¡¡¡¡¡¡£if¡¡eax¡¡¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡TranslateAccelerator£»hWinMain£»@hAccelerator£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡TranslateMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡DispatchMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡£endw
TranslateAcceleratorº¯ÊýÊÇʵÏÖ¼ÓËÙ¼ü¹¦ÄܵĺËÐÄ£¬ËüµÄ²ÎÊýΪĿ±ê´°¿Ú¡¢¼ÓËÙ¼ü¾ä±úºÍGetMessageÈ¡µÃµÄÏûÏ¢½á¹¹¡£¸Ãº¯Êý¼ì²éÏûÏ¢½á¹¹ÖеÄÏûÏ¢£¬Èç¹ûÓöµ½WM_KEYDOWNºÍWM_SYSKEYDOWNÏûÏ¢Ôò¼ì²â¼ÓËÙ¼ü×ÊÔ´£¬¿´°´¼üÊÇ·ñ·ûºÏij¸ö¼ÓËÙ¼ü£¬·ûºÏµÄ»°ÔòÏòÄ¿±ê´°¿Ú·¢ËÍWM_MAND»òWM_SYSMANDÏûÏ¢£¬²¢·µ»ØTRUE£¬²»·ûºÏµÄ»°²»½øÐÐÈκδ¦Àí²¢·µ»ØFALSE¡£
ÓÉÓÚ¼ÓËÙ¼üµÄ¼üÂë²¢²»ÊÇÓû§ÕæÕýÏëÊäÈë´°¿ÚµÄ£¬±ÈÈçÓû§ÔÚд×Ö°åÖÐÊäÈëÎÄ×Ö£