Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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