.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\kernel32.lib includelib \masm32\lib\user32.lib EnumProc PROTO WORD,:DWORD .data cLassName db 'BomzWinClass',0 form db 'Count: %u%',0 .data? string db 32 dup(?) count dd ? .code start: invoke EnumWindows, addr EnumProc, NULL invoke wsprintf,addr string,addr form,count invoke MessageBox,0,addr string,addr cLassName,MB_OK + MB_ICONASTERISK invoke ExitProcess, 0 EnumProc proc hwnd:HWND, lParameter:DWORD LOCAL buffer[512]:BYTE invoke GetClassName, hwnd, addr buffer, sizeof buffer invoke lstrcmp, addr buffer, addr cLassName cmp eax ,0 jnz @F add count, 1 @@: mov eax, 1 ret EnumProc endp end start |