|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » [решено] Получение списка хендлов к файлу |
|
|
[решено] Получение списка хендлов к файлу
|
Ветеран Сообщения: 573 |
Профиль | Отправить PM | Цитировать Как через Win32 узнать, есть ли открытые хендлы у файла? Хочется узнать, получится ли удалить файл, не производя собственно попытки его стереть.
|
|
------- Отправлено: 18:40, 24-05-2005 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Обязательно самому писать? Если нет, советую:
http://www.sysinternals.com/ntw2k/freeware/handle.shtml Ну и это можно посмотреть: http://www.sysinternals.com/ntw2k/source/filemon.shtml |
Отправлено: 12:15, 26-05-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать Handle выдаёт неполные данные. Возьмём, к примеру, nnCron. У него в составе библиотека есть, которая, очевидно, отвечает за отображение контекстного меню, — nnhook.dll. Если в сеансе работы вызвать контекстное меню, то до перезагрузки этот файл удалить невозможно. Но Handle никаких данных о хендлах к нему не выдаёт. Или я что-то недопонимаю здесь просто?
|
------- Отправлено: 14:02, 06-09-2005 | #3 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Raistlin
Цитата:
Ведь насколько я понял,под "открытым файлом" ты подразумеваешь некоторый запущенный исполняемый файл (.exe)... |
|
------- Отправлено: 15:21, 06-09-2005 | #4 |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать Цитата:
|
||
------- Отправлено: 17:07, 06-09-2005 | #5 |
Пользователь Сообщения: 117
|
Профиль | Сайт | Отправить PM | Цитировать А попробуй его открыть — Exclusive... (for r/w and w/o sharing flags)
Я так проверяю в аналогичной ситуации. |
Отправлено: 07:03, 07-09-2005 | #6 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Raistlin
Теперь я вроде понял,что ты имеешь в виду (невозможность удаления библиотеки пока не перезагрузишь систему). Значит,функция EnumProcessModules лишь перечисляет все модули,загруженные в адресное пространство конкретного процесса. В твоём же случае необходимо,на мой взгляд,смотреть атрибуты файла, т.е. возможно,что у этой библиотеки выставлен атрибут FILE_ATTRIBUTE_READONLY ,который означает,что приложения не могут ни писать в этот файл,ни удалять его. К примеру: var fAttrs : DWORD; fName : LPCTSTR; begin fAttrs := GetFileAttributes('nnhook.dll'); if fAttrs = FILE_ATTRIBUTE_READONLY then begin SetFileAttributes('nnhook.dll', FILE_ATTRIBUTE_NORMAL); end; end; P.S. Если тебе всё-таки понадобится пример кода функции EnumProcessModules,напиши - приведём . |
------- Отправлено: 15:48, 07-09-2005 | #7 |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 17:18, 07-09-2005 | #8 |
Пользователь Сообщения: 117
|
Профиль | Сайт | Отправить PM | Цитировать А спасибо...
Ладно уж, я так, к слову... |
Отправлено: 17:59, 07-09-2005 | #9 |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать Прощу прощения! Конечно, большое спасибо. Я долго раздумывал, писать такое неинформативное сообщение или нет , решил — не буду, так как в предыдущем посте я поблагодарил заранее. Надеюсь, ты меня простишь .
А вот и кое-что по теме. Похоже, проверить каталог на залоченность таким образом нельзя: возвращает хендл к каталогу, который открыт, скажем, в Far и удалён быть не может. Есть идеи? |
------- Отправлено: 15:57, 08-09-2005 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Время последнего обращения к файлу | truvo | Хочу все знать | 1 | 23-11-2009 13:36 | |
[решено] Как вернуть расширение файлу? | vof44ik | Хочу все знать | 8 | 14-06-2009 00:12 | |
[решено] Получение списка неизвестных ключей реестра | morgan1991 | AutoIt | 5 | 07-03-2009 00:18 | |
[решено] Получение Данных из таблицы(JS) | System Failure | Вебмастеру | 3 | 26-05-2008 08:36 | |
Драйвер - [решено] Как узнать устройстпо по .sys файлу? | NordWest | Microsoft Windows 2000/XP | 7 | 09-11-2007 15:36 |
|