|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.12.2011, 13:31 | #1 |
Форумчанин
Регистрация: 27.09.2008
Сообщений: 152
|
Delphi Close Handle патока процесса
Доброго время суток!
Как реализовать такое как в программе на скриншоте По имени процесаа вывод списка и завершение из списка какие функции используются гугли толком нечего вообще не нашёл ( |
18.12.2011, 15:36 | #2 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
1. не понятно что именно нужно
2. получение списка хендлов для любого процесса - функция ZwQuerySystemInformation с классом информации SystemHandleInformation 3. чтобы закрыть хендл открытый в чужом процессе, необходимо внедрить в него свой код. внутри него вызвать функцию CloseHandle. В ProcessExplorer cкорее всего это делается с помощью создания потока в чужом процессе через CreateRemoteThread, с указанием поточной функции CloseHandle, так как эта функция полностью удовлетворяет прототипу поточной функции (принимает только один параметр).
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
Последний раз редактировалось haruhi; 18.12.2011 в 15:40. |
18.12.2011, 20:24 | #3 | |
Форумчанин
Регистрация: 27.09.2008
Сообщений: 152
|
Цитата:
|
|
18.12.2011, 20:54 | #4 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
так происходит загрузка DLL в чужой процесс (отсюда)
Код:
как-то так Код:
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
18.12.2011, 21:07 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
1)утечка памяти в чужом процессе. 2)хендл потока оставлен открыт. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
18.12.2011, 21:23 | #6 |
Форумчанин
Регистрация: 27.09.2008
Сообщений: 152
|
|
19.12.2011, 09:53 | #7 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
это копипаста из статьи rpy3uH'а . а так для понимания сути хватит. Для CloseHandle память выделять не надо, только создать поток и передать ему параметры, и потом закрыть хендл самого потока, но это мелочи
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
19.12.2011, 21:29 | #8 | |
Форумчанин
Регистрация: 27.09.2008
Сообщений: 152
|
Цитата:
не пойму что вставлять(выделил зелёным) а так разабрался вроде |
|
19.12.2011, 21:33 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
см пункт 2 первого ответа.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.12.2011, 21:40 | #10 | |
Форумчанин
Регистрация: 27.09.2008
Сообщений: 152
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Undeclared identifier Handle в Delphi 2010 | demiancz | Общие вопросы Delphi | 2 | 24.08.2011 12:44 |
Запуск процесса в потоке, завершение процесса в указааноое время, Дайте совет | Человек_Борща | Общие вопросы Delphi | 3 | 29.08.2010 12:58 |
Как узнать handle окна имея handle обного из его компонентов | SeRhy | Win Api | 2 | 18.10.2009 19:31 |
Как имея handle окна узнать handle edit-a который находится в етом окне | SeRhy | Общие вопросы Delphi | 1 | 20.07.2008 13:48 |