Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 22.06.2008, 00:33   #1
Teleport
Пользователь
 
Регистрация: 04.06.2008
Сообщений: 32
По умолчанию список всех открытых файлов и папок.

Посоветуйте пожалуйста, как получить список всех открытых файлов и папок в системе.
Вобщем программка стартует вместе с запуском системы и следит за тем какие файлы, папки, какие ссылки были открыты.
Хотя бы с помощью чего это сделать. Основная идея. К%акими функциями пользоваться. Также нужно, чтобы еще и время открытия файла отображала. И время закрытия))))
Teleport вне форума Ответить с цитированием
Старый 22.06.2008, 00:45   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Это совсем не тривиальная задача. Можно получить список всех открытых объектов, через NtQuerySystemInformation, но даст это мало. Для тех целей, что Вы формулируете, нужен драйвер.
B_N вне форума Ответить с цитированием
Старый 22.06.2008, 01:03   #3
Teleport
Пользователь
 
Регистрация: 04.06.2008
Сообщений: 32
По умолчанию

подробней можно? Мне это ни о чем не говорит вообще.
Я так понял, что это совсем сложно что ли?
Teleport вне форума Ответить с цитированием
Старый 22.06.2008, 02:13   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Teleport, что подробней? Копайте в сторону NtQuerySystemInformation с параметрами SystemHandleInformation и SystemObjectInformation. Получайте через неё список открытых хэндлов, выбирайте из них те, которые являются файлами, получайте имена. Только стоит учесть, что файл может быть открыт десятком процессов, а выяснить, какой процесс открыл конкретный системный объект не самая простая задача. Плюс Вы ещё и время хотите, мало того, что открытия, так ещё и закрытия, т.е. хотите получить информацию о несуществующем больше объекте. Поэтому и говорю - хотите получить всю эту инфу - пишите драйвер. Перехватывайте NtCreateFile, NtCloseHandle, мониторьте то, что они возвращают и ведите свой список открытых файлов, с привязкой к процессам и временам.
B_N вне форума Ответить с цитированием
Старый 22.06.2008, 10:29   #5
Teleport
Пользователь
 
Регистрация: 04.06.2008
Сообщений: 32
По умолчанию

уже понятней)) Спасиб))
Teleport вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список открытых портов Баламут Работа с сетью в Delphi 3 21.05.2008 09:17
Как в Memo1 вывести список папок? apromix Общие вопросы Delphi 1 08.05.2008 14:12
Список открытых файлов ExcArt Microsoft Office Excel 3 30.03.2008 10:06
Получить список папок Иллидан Общие вопросы Delphi 1 22.03.2008 15:24
Как узнать список всех окон Никки Общие вопросы Delphi 5 23.01.2008 08:10


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS