|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.02.2013, 22:18 | #1 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Закрыть программу из DLL и выгрузить DLL
Доброго времени суток читающим!
Ситуация такая: нужно закрыть программу из DLL и эту самую DLL из нее выгрузить вместе с этим, к коду закрываемой программы я доступа не имею т.ч. делать все нужно из DLL. Я не нашел ни одного способа закрыть прогу из дллки без непосредственного убийства процесса, а при таком способе DLL_PROCESS_DETACH разумеется не вызывается, и DLLка остается висеть в воздухе, что приводит к тому что при следующем запуске программы ее код стоящий на DLL_PROCESS_ATTACH не выполняется. На сколько мне известно выгрузить DLL можно с помощью FreeLibrary, но я не нашел информации как получить хендл дллки. Но даже еслиб я получил, разьве FreeLibrary выполнился бы если бы стоял после ExitProcess(GetCurrentProcessId)? А до убийства процесса я FreeLibrary поставить не могу, по той простой причине что код после FreeLibrary точно не выполнится и сооветственно процесс не убьется. Вобщем я в тупике, прошу местных гуру помощи. Заранее спасибо! |
26.02.2013, 22:34 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Всем окнам ПО посылаете сигнал к выходу из ПО(нажатие на [X]). И все.
|
27.02.2013, 15:15 | #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 |