eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Программирование —› Бегущая строка (как использовать этот код)
Посл.ответ Сообщение

Ранг: 6.0 (гость)
Статус: Участник

Создано: 12 ноября 2015 08:42 New!
Цитата · Личное сообщение · #1

Здравствуйте! Подскажите, пожалуйста, как использовать этот код в своей программе?

Code:
  1. .const
  2. OUT_WIDTH               equ     40
  3. OUT_HEIGHT               equ     14
  4. OUT_X                    equ     20
  5. OUT_Y                    equ     20
  6. ABOUT_TXT               equ     0000000h
  7. SCROll_TXT          equ     0000000h
  8. WS_EX_LAYERED     equ     80000h
  9. LMA_ALPHA          equ     2     
  10. GRADIENT          equ     2d
  11.  
  12. .data
  13. font          db     "ms sans serif",0
  14. dbCaption     db     " BLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA "
  15. dbCaption1     db     "all memberz... ",0
  16. dbSLWA          db     "SetLayeredWindowAttributes",0
  17. dbUser32     db     "user32.dll",0
  18. rCaptRct     RECT     <OUT_X,OUT_Y,OUT_X+OUT_WIDTH,OUT_Y+OUT_HEIGHT>
  19.  
  20. .data?
  21. hfont          dd     ?
  22. memdc          dd     ?
  23. rectW          dd     ?
  24. ttread     dd     ?
  25.  
  26. .code
  27.  
  28. TextOutput proc hWn:DWORD
  29. LOCAL x:DWORD, y:DWORD, col:DWORD
  30.      xor     eax,eax
  31.      mov     ebx,SCROll_TXT
  32.      ;sub ebx,ABOUT_FRAME
  33.      mov     ecx,GRADIENT
  34.      mov     esi,3
  35. @@:
  36.      mov     al,bl
  37.      shr     ebx,8
  38.      cdq
  39.      idiv ecx
  40.      mov     byte ptr col,al
  41.      ror     col,8
  42.      dec     esi
  43.      jnz     @B
  44.      shr     col,8
  45.  
  46.      mov     edi,SCROll_TXT
  47.      mov     eax,col
  48.      imul eax,GRADIENT
  49.      sub     edi,eax
  50.  
  51.      mov     esi,rectW
  52.      dec     esi
  53. paint:
  54.      invoke BitBlt,memdc,esi,0,1,OUT_HEIGHT,memdc,0,0,SRCCOPY
  55.      invoke BitBlt,memdc,0,0,esi,OUT_HEIGHT,memdc,1,0,SRCCOPY
  56.  
  57.      ; fade out
  58.      mov     x,0
  59. @11:
  60.      mov     y,0
  61.      @21:
  62.           invoke GetPixel,memdc,x,y
  63.           .if eax!=0
  64.                sub     eax,col
  65.                invoke SetPixel,memdc,x,y,eax
  66.           .endif
  67.           inc     y
  68.           cmp     y,OUT_HEIGHT
  69.           jl     @21
  70.      inc     x
  71.      cmp     x,GRADIENT
  72.      jl     @11
  73.  
  74.      ;fade in init
  75.      mov     y,0
  76. @@:
  77.      invoke GetPixel,memdc,OUT_WIDTH,y
  78.      .if eax!=0
  79.           invoke SetPixel,memdc,OUT_WIDTH,y,edi
  80.      .endif
  81.      inc     y
  82.      cmp     y,OUT_HEIGHT
  83.      jl     @B
  84.  
  85.      ; fade in
  86.      mov     eax,OUT_WIDTH
  87.      sub     eax,GRADIENT
  88.      mov     x,eax
  89. @12:
  90.      mov     y,0
  91.      @22:
  92.           invoke GetPixel,memdc,x,y
  93.           .if eax!=0
  94.                add     eax,col
  95.                invoke SetPixel,memdc,x,y,eax
  96.           .endif
  97.           inc     y
  98.           cmp     y,OUT_HEIGHT
  99.           jl     @22
  100.      inc     x
  101.      cmp     x,OUT_WIDTH
  102.      jl     @12
  103.  
  104.      invoke InvalidateRect,hWn,addr rCaptRct,0
  105.      invoke Sleep,30d
  106.      jmp     paint
  107. ret
  108. TextOutput endp
  109.  
  110. ShowThread proc hWin:DWORD
  111. LOCAL hSLWA:DWORD
  112.      invoke LoadLibrary,addr dbUser32          ; for Win98 support (not to keep this func in import)
  113.      mov     esi,eax
  114.      invoke GetProcAddress,esi,addr dbSLWA
  115.      mov     hSLWA,eax
  116.      invoke FreeLibrary,esi
  117.  
  118.      mov ecx,10
  119. showloop:          
  120.      push ecx
  121.      
  122.      push LMA_ALPHA
  123.      push ecx
  124.      push 0
  125.      push hWin
  126.      call hSLWA
  127.  
  128.      invoke Sleep,1
  129.      pop ecx
  130.      inc cl
  131.      jnz showloop
  132.  
  133.      invoke GetWindowLong,hWin,GWL_EXSTYLE
  134.      mov     ebx,WS_EX_LAYERED
  135.      not     ebx
  136.      and eax,ebx
  137.      invoke SetWindowLong,hWin,GWL_EXSTYLE,eax
  138. ret
  139. ShowThread endp
  140.  
  141. Show proc hWin:DWORD
  142.  
  143. invoke GetVersion     ; is XP or 2000
  144.           .if     al==5
  145.                invoke GetWindowLong,hWin,GWL_EXSTYLE
  146.                or eax,WS_EX_LAYERED
  147.                invoke SetWindowLong,hWin,GWL_EXSTYLE,eax
  148.                invoke CreateThread,NULL,NULL,addr ShowThread,hWin,NULL,NULL
  149.           .endif     
  150. ret
  151. Show endp

Ранг: 236.6 (наставник)
Статус: Участник

Создано: 12 ноября 2015 08:52 New!
Цитата · Личное сообщение · #2

Откуда столько конченых идиотов в последнее время? Магнитные бури что ли?

Ранг: 6.0 (гость)
Статус: Участник

Создано: 12 ноября 2015 09:02 New!
Цитата · Личное сообщение · #3

Зачем сразу так ругаться?! У меня задание бегущая строка, есть код, как вызвать его в программе?

include line.asm

А дальше?

Ранг: 286.0 (наставник)
Статус: Модератор
CrackLab

Создано: 12 ноября 2015 09:12 New!
Цитата · Личное сообщение · #4

дальше вызвать процедуру Show

Ранг: 6.0 (гость)
Статус: Участник

Создано: 12 ноября 2015 09:13 New!
Цитата · Личное сообщение · #5

Я вызываю: invoke Show, hWin
Но безрезультатно!


Ранг: 516.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 12 ноября 2015 09:20 New!
Цитата · Личное сообщение · #6

Andrello_88 пишет:
Я вызываю: invoke Show, hWin
Но безрезультатно!

Операционка Вин7+ и проверка не канает
Code:
  1. invoke GetVersion     ; is XP or 2000
  2.           .if     al==5

| Сообщение посчитали полезным: samtehnik


Ранг: 3.6 (гость)
Статус: Участник

Создано: 13 ноября 2015 01:35 New!
Цитата · Личное сообщение · #7

пипец какой год уже, до сих пор примеры окон на асме собирают


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 13 ноября 2015 07:34 New!
Цитата · Личное сообщение · #8

carpucio пишет:
примеры окон на асме собирают


А на чем надо ? )

Ранг: 30.2 (посетитель)
Статус: Участник

Создано: 13 ноября 2015 07:39 New!
Цитата · Личное сообщение · #9

Rainbow пишет:
А на чем надо ? )

На c# же. =)

Ранг: 404.8 (мудрец)
Статус: Участник

Создано: 13 ноября 2015 07:53 · Поправил: 13 ноября 2015 07:54 dosprog New!
Цитата · Личное сообщение · #10

carpucio пишет:
пипец какой год уже, до сих пор примеры окон на асме собирают


А чо делать-то?..


Andrello_88 пишет:
Подскажите, пожалуйста, как использовать этот код в своей программе?


Этот код - пожалуй, не получится.


Ранг: 19.4 (новичок)
Статус: Участник

Создано: 14 ноября 2015 15:43 · Поправил: 16 ноября 2015 00:02 elch New!
Цитата · Личное сообщение · #11

Andrello_88 пишет:
Подскажите, пожалуйста, как использовать этот код в своей программе?

Тут явно нерабочий код. Вот пример нормального скроллера от diablo2oo2:

{ Атач доступен только для участников форума } - textscroller.rar

Вот ещё примеры: Scroller lib v1.01 и на FASM: --> Link <--

| Сообщение посчитали полезным: Andrello_88

 eXeL@B —› Программирование —› Бегущая строка (как использовать этот код)

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS