![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
![]()
Доброго времени суток читающим!
Ситуация такая: нужно закрыть программу из DLL и эту самую DLL из нее выгрузить вместе с этим, к коду закрываемой программы я доступа не имею т.ч. делать все нужно из DLL. Я не нашел ни одного способа закрыть прогу из дллки без непосредственного убийства процесса, а при таком способе DLL_PROCESS_DETACH разумеется не вызывается, и DLLка остается висеть в воздухе, что приводит к тому что при следующем запуске программы ее код стоящий на DLL_PROCESS_ATTACH не выполняется. На сколько мне известно выгрузить DLL можно с помощью FreeLibrary, но я не нашел информации как получить хендл дллки. Но даже еслиб я получил, разьве FreeLibrary выполнился бы если бы стоял после ExitProcess(GetCurrentProcessId)? А до убийства процесса я FreeLibrary поставить не могу, по той простой причине что код после FreeLibrary точно не выполнится и сооветственно процесс не убьется. Вобщем я в тупике, прошу местных гуру помощи. Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Всем окнам ПО посылаете сигнал к выходу из ПО(нажатие на [X]). И все.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
![]()
Увы но что-то не сработало...
Пробовал так: CloseHandle(GetModuleHandle(nil)); так: SendMessage(GetModuleHandle(nil),WM _DESTROY,0,0); и так: SendMessage(GetModuleHandle(nil),WM _CLOSE,0,0); GetModuleHandle(nil) вызвается соответственно из тойже DLL и исправно выдает хендл. Программа никак не реагирует на вышеописанные действия. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? | AntyDES | C# (си шарп) | 11 | 10.10.2012 20:00 |
Закрыть программу из DLL | Shouldercannon | Общие вопросы Delphi | 2 | 17.05.2011 17:49 |
как правильно выгрузить dll из памяти | пауэрлифтинг | Общие вопросы Delphi | 11 | 05.04.2010 00:46 |
Ошибка при выхове функций Bass.dll из другой DLL | SalasAndriy | Общие вопросы Delphi | 7 | 21.10.2009 23:36 |
Программно выгрузить DLL из памяти | Air | Помощь студентам | 7 | 01.05.2008 00:06 |