Компьютерные вирусы
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат на тему образ жизни, сочинение язык
| Добавил(а) на сайт: Jeshman.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
;Сообщение выводимое в окне szPaint db "Left button pressed:" s_num db "00000000h times.",0
;Размер сообщения
MSG_L EQU ($-offset szPaint)-1
.code
;Сюда обычно передается управление от загрузчика. start:
;Получим HMODULE push L 0 call GetModuleHandle mov [hInst],eax push L 0 push offset szClassName call FindWindow or eax,eax jz reg_class
;Пространство для модификации строки заголовка mov [zero]," " reg_class:
;Инициализируем структуру WndClass mov [wc.clsStyle],CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS mov [wc.clsLpfnWndProc],offset WndProc mov [wc.clsCbClsExtra],0 mov [wc.clsCbWndExtra],0 mov eax,[hInst] mov [wc.clsHInstance],eax
;Загружаем значок push L IDI_APPLICATION push L 0 call LoadIcon mov [wc.clsHIcon],eax
;Загружаем курсор push L IDC_ARROW push L 0 call LoadCursor mov [wc.clsHCursor],eax
;Инициализируем оставшиеся поля структуры WndClass mov [wc.clsHbrBackground],COLOR_WINDOW+1 mov dword ptr [wc.clsLpszMenuName],0 mov dword ptr [wc.clsLpszClassName],offset szClassName
;Регистрирем класс окна push offset wc call RegisterClass
;Создаем окно push L 0 ;lpParam push [hInst] ;hInstance push L 0 ;Меню push L 0 ;hwnd родительского окна push L CW_USEDEFAULT ;Высота push L CW_USEDEFAULT ;Длина push L CW_USEDEFAULT ;Y push L CW_USEDEFAULT ;X push L WS_OVERLAPEEDWINDOW ;Style push offset szTitleName ;Title Style push offset szClassName ;Class Name push L 0 ;extra style call CreateWindowEx
;Сохраняем HWND mov [newhwnd],eax
;Отображаем окно на экране push L SW_SHOWNORMAL push [newhwnd] call ShowWindow
;Обновляем содержимое окна push [newhwnd] call UpdateWindow
;Очередь сообщений msg_loop:
;Прочитаем следующее сообщение из очереди push L 0 push L 0 push L 0 push offset msg call GetMessage
;Если функция GetMessage вернула нулевое значение,
;то завершаем обработку сообщений и выходим из процесса cmp ax,0 je end_loop
;преобразуем виртуальные коды клавиш в сообщения клавиатуры push offset msg call TranslateMessage
;Предаем это сообщение назад в Windows push offset msg call DispatchMessage
;Переходим к следующему сообщению jmp msg_loop
;Выходим из процесса end_loop: push [msg.msWPARAM] call ExitProcess
;Обработка сообщений окна. Win32 требует сохранения регистров
;EBX, EDI, ESI. запишем эти регистры после "uses" в строке "proc"
;Это позволит Ассемблеру сохранить их
WndProc proc uses ebx edi esi,hwnd:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD
LOCAL theDC:DWORD
Рекомендуем скачать другие рефераты по теме: контрольная, использование рефератов.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата