![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
Ставлю хук на Api функцию RegCreateKeyA
к проекту dll подключаю и форму которая впоследствии должна выскакивать модально и стопорить процесс:
Dll работает нормально но есть одна проблема например если "поймается" Explorer.exe то эта форма выскакивает "Миллион раз" не пойму почему там же на ней стоит ShowModal Не подскажите как это можно поправить? -------------------- Ни цего не понимаю |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Все правильно. Ты же цепляешь к каждому процессу копию dll, а не один и тот же процесс.
Для каждого процесса будет новая инстанция dllки. А поскольку explorer'ов в системе запущена большая куча, то и для каждого экземпляза запускается новый экземпляр твоей dll и благополучно запускается. |
|||
|
||||
| Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
а как это
ведь в процессах виде всего один не подскажеш что можно предпринят против этого? -------------------- Ни цего не понимаю |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Против эксплорера не попрешь. Их много и они системные.
А чтобы был только один вызов - используй мьютекс. Первая же копия его займет, а остальные, видя, что он занят, не будут показывать формочку. |
|||
|
||||
| Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
расскажи пожалуйста по подробней про
или дай какойто примерчик а то я первый раз слышу про этот мьютекс -------------------- Ни цего не понимаю |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
||||
|
||||
| Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
мне ведь нужно чтобы остальные не просто не показывались но еще и стопорились(как modal) ожидая первого
-------------------- Ни цего не понимаю |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Вешай WaitForSingleObject на мьютекс, будет тебе стопор.
|
|||
|
||||
| Teran |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
из твоих линков я так думаю что код Петровича мне подойдёт только не знаю как его прикрутить
а вот мой юнит в Dll
подскажи пожалуйста как сделать -------------------- Ни цего не понимаю |
||||
|
|||||
| Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
Вот что я получил:
Но как ни странно всеравно вылетают милионы форм может это из-за того что в: function CheckOneInstance(const ApplicationName :String):boolean; - Application.Handle равен нулю?? вот и выполняется всегда это равенство: if HPtr^ = 0 then -------------------- Ни цего не понимаю |
|||
|
||||
| Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: 1 Всего: 3 |
Но когда делаю это не в dll а на форме Mutex - нормально отрабатывает
-------------------- Ни цего не понимаю |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |