Сейчас на форуме: laslo, UniSoft, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Вопрос про [.asm]
Посл.ответ Сообщение

Ранг: 12.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 31 октября 2010 23:00
· Личное сообщение · #1

Всем здоровья ! Гаспода подскажите кто знает, как вызвать proc Sleep1 и proc Sleep2 одновременно?

format PE GUI 4.0
entry start
include 'win32a.inc'


start:

call ????



;-----------------------------
proc Sleep1
.ff:
push 2000
call [Sleep]

jmp .ff
endp
;-----------------------------
proc Sleep2
.ff:
push 2000
call [Sleep]
jmp .ff
endp
;----------------------------
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL',\
advapi32,'ADVAPI32.DLL',\
comctl32,'COMCTL32.DLL',\
comdlg32,'COMDLG32.DLL',\
shell32,'SHELL32.DLL'


include 'api/kernel32.inc'
include 'api/user32.inc'
include 'api/advapi32.inc'
include 'api/comctl32.inc'
include 'api/comdlg32.inc'
include 'api/shell32.inc'




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 октября 2010 23:03
· Личное сообщение · #2

CreateThread?

-----
Yann Tiersen best and do not fuck





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 31 октября 2010 23:05
· Личное сообщение · #3

Зачем?

-----
Лучше быть одиноким, но свободным © $me




Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 31 октября 2010 23:18
· Личное сообщение · #4

SetTimer

-----
продавец резиновых утёнков




Ранг: 12.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 31 октября 2010 23:28
· Личное сообщение · #5

< CreateThread?
гдето встречал пример а сейчас найти немогу

<SetTimer
а как через через SetTimer вызвать 2 proc -a ?



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 31 октября 2010 23:33
· Личное сообщение · #6

AUE пишет:
гдето встречал пример а сейчас найти немогу

я даже знаю где его ещё раз встретить можно - в интернете



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2010 23:38
· Личное сообщение · #7

AUE пишет:
а как через через SetTimer вызвать 2 proc -a ?

Одна процедура вызывается в таймере, а вторая непосредственно после создания таймера.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 октября 2010 23:39 · Поправил: Coderess
· Личное сообщение · #8

AUE
Code:
  1. .data?
  2. TID dword ?
  3. .code
  4. invoke CreateThread,0,0, addr CalledProc, 0, 0, TID


lpTimerFunc - в обработчик адрес вызываемой функции
Code:
  1. UINT_PTR WINAPI SetTimer(
  2.   __in_opt  HWND hWnd,
  3.   __in      UINT_PTR nIDEvent,
  4.   __in      UINT uElapse,
  5.   __in_opt  TIMERPROC lpTimerFunc
  6. );


Почитайте MSDN

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 31 октября 2010 23:51
· Личное сообщение · #9

При помощи 2-х таймеров можно создать псевдомногопоточность с грубо заданным интервалом переключений, что вроде ТС и нужно. CreateThread + Sleep в каждом потоке - правильнее, здесь можно задать соответствие если процессоров не 1шт.

-----
продавец резиновых утёнков




Ранг: 12.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 01 ноября 2010 12:03
· Личное сообщение · #10

Спасибо всем за ответы,буду пробовать.
Хотел еще спросить,чтоб воспользоваться CreateThread нужно еще какийнебудь API юзать?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 01 ноября 2010 12:15
· Личное сообщение · #11

Это и есть апи

-----
Yann Tiersen best and do not fuck




Ранг: 12.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 03 ноября 2010 18:11
· Личное сообщение · #12

Разобрался,окозалось что ничего сложного в этом CreateThread нет,Еще раз всем BIG спасиб.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 03 ноября 2010 22:57
· Личное сообщение · #13

Тогда можно закрыть, видимо.


 eXeL@B —› Программирование —› Вопрос про [.asm]
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати