Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2009, 23:25   #1
Horus92
Форумчанин
 
Аватар для Horus92
 
Регистрация: 04.05.2009
Сообщений: 147
По умолчанию DLLentrypoint в Delphi

Здравствуйте, у меня есть dll с функцией которая вызывается через DLLentrypoint на событие DLL_PROCESS_ATTACH и подключено к исполняемому файлу (исходников которого не имеется) через LordPE но оно выполняет нужную мне процедуру только один раз подскажите пожалуйста как мне сделать так что бы данная процедура выполнялась постоянно с задержкой между выполнением хотя бы 1 минута.
Horus92 вне форума Ответить с цитированием
Старый 20.11.2009, 09:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тебе придется создавать таймер в DLL_PROCESS_ATTACH на ту процедуру...
Я так понял это экзешник реверсить - не завидую.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2009, 09:50   #3
Horus92
Форумчанин
 
Аватар для Horus92
 
Регистрация: 04.05.2009
Сообщений: 147
По умолчанию

так а как вставить таймер в dll библиотеку?
Horus92 вне форума Ответить с цитированием
Старый 20.11.2009, 10:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну я полагаю через CreateTimer
Как же еще?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2009, 10:36   #5
Horus92
Форумчанин
 
Аватар для Horus92
 
Регистрация: 04.05.2009
Сообщений: 147
По умолчанию

Всмысле create timer у меня dll файл если я обьявляю переменную типа TTimer то пишет undeclared identifier можно пожалуйста код как в dll создать timer
Horus92 вне форума Ответить с цитированием
Старый 20.11.2009, 10:56   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не спец по Си, но смысл примерно таков:
описывам процедуру таймера:
Код:
int __stdcall TimerProc(

	HWND hwnd,	// handle of window for timer messages
	UINT uMsg,	// WM_TIMER message
	UINT idEvent,	// timer identifier
	DWORD dwTime 	// current system time
   ){
	MessageBeep(12);
   }
Создаем на нее таймер
Код:
SetTimer(0,1,10,&TimerProc);
Там где я жирным выделил я не уверен - см. хелп.
И я не знаю как поведет себя таймер если ему хендл окна не задать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2009, 11:00   #7
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Там где я жирным выделил я не уверен - см. хелп.
И я не знаю как поведет себя таймер если ему хендл окна не задать.
Хм, а где обрабатывать WM_TIMER будите ? В принципе можно и в отдельном обработчике или свое окно создавать, вешать обработчик WM_TIMER и уже хендл своего окна указывать в SetTimer, а еще можно, что помойму логичней и лучше, создать отдельную нить (поток) в длл, и просто вызывать Sleep(ваше время в мсек), а при DETACHе длл, завершать поток.
BOBAH13 вне форума Ответить с цитированием
Старый 20.11.2009, 11:02   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вова, насколько я знаю
Цитата:
If lpTimerFunc is NULL, the system posts a WM_TIMER message to the application queue.
Означает что если процедура-обработчик не указано посылается это сообщение, иначе обработчик отрабатывает
Цитата:
то помойму логичней и лучше, создать отдельную нить
Ну логичнее, но эо уже автору виднее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2009, 11:16   #9
Horus92
Форумчанин
 
Аватар для Horus92
 
Регистрация: 04.05.2009
Сообщений: 147
По умолчанию

А на паскале как мне timer вставить в dll?
Я так понял в Delphi тоже есть sleep но как мне сделать так чтобы процедура повторялась а не проходила один раз на вызов.

Последний раз редактировалось Horus92; 20.11.2009 в 11:32.
Horus92 вне форума Ответить с цитированием
Старый 20.11.2009, 11:41   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
А на паскале как мне timer вставить в dll?
На паскале этого нельзя )
Цитата:
Я так понял в Delphi тоже есть sleep но как мне сделать так чтобы процедура повторялась а не проходила один раз на вызов.
Если не знаешь - не парься, таймер для этого вполне подходит.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27