Создание примитивного Графического редактора и слежение за MBR

Тема в разделе "WASM.ASSEMBLER", создана пользователем invisible, 4 дек 2007.

  1. invisible

    invisible New Member

    Публикаций:
    0
    Регистрация:
    4 дек 2007
    Сообщения:
    1
    Здравствуйте!
    Сначала хотел бы извинится, если поместил тему не в тот раздел.

    Поставили задачу написать на асме программу для рисования. Просто при нажатии на левую кнопку мыши рисовать за ней след при движении. Ничего больше. Но асм практически не знаю, может быть есть у кого то подобный исходник? или хотя бы статьи на эту тему?

    А второй вопрос это резидентная программа слежения за MBR. Может быть у кого нибуть есть на эту тему наработки? Или есть что почитать?

    С Ув. Сергей!
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    чтение MBR, добавьте таймер, по таймеру считывайте и сравнивайте, если я правильно понимаю слежение
    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3.  
    4. include '%fasminc%\win32a.inc'
    5.  
    6. MBR_SIZE        =  512
    7.  
    8.  
    9. section '.code' code readable executable
    10.  
    11. align 4
    12. start:
    13.     invoke CreateFile, DeviceName, GENERIC_READ,\
    14.                        FILE_SHARE_READ or FILE_SHARE_WRITE, 0, OPEN_EXISTING,\
    15.                        FILE_ATTRIBUTE_NORMAL, 0
    16.     cmp eax, INVALID_HANDLE_VALUE
    17.     je @exit
    18.         push eax
    19.         invoke ReadFile, eax, MBR, MBR_SIZE, NumberOfBytesRead, NULL
    20.         test eax, eax
    21.         jz @close
    22.             invoke CreateFile, FileName, GENERIC_WRITE,\
    23.                                FILE_SHARE_READ, 0, CREATE_ALWAYS,\
    24.                                FILE_ATTRIBUTE_NORMAL, 0
    25.             cmp eax, INVALID_HANDLE_VALUE
    26.             je @close
    27.                 push eax
    28.                 invoke WriteFile, eax, MBR, MBR_SIZE, NumberOfBytesRead, NULL
    29.                 call [CloseHandle]
    30. @close:
    31.         call [CloseHandle]
    32. @exit:
    33.     invoke ExitProcess, 0
    34.  
    35.  
    36. section '.data' data readable writeable
    37.  
    38. DeviceName    db  '\\.\PHYSICALDRIVE0',0
    39. FileName      db  'MBR.bin',0
    40.  
    41.  
    42. section '.udata' readable writeable
    43.  
    44. MBR                   rb  MBR_SIZE
    45. NumberOfBytesRead     dd  ?
    46.  
    47.  
    48. section '.idata' import data readable
    49.  
    50. library kernel32,'KERNEL32.DLL',\
    51.           user32,'USER32.DLL'
    52.  
    53. include '%fasminc%\APIA\KERNEL32.INC'
    54. include '%fasminc%\APIA\USER32.INC'
     
  3. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    invisible
    Чтобы рисовать достаточно изучить базовые WinAPI для рисования - BeginPaint/EndPaint, LineTo, + обработка сообщений WM_PAINT, WM_LBUTTONUP. Петцольд вам поможет.
     
  4. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    программа для рисования - братья Фроловы "GDI" правда там на С, но переделать не сложно