Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить используется ли файл другим приложением? [D5, Win2k]


UNIVERSAL ©   (2004-10-06 11:26:00) 

Здравствуйте Господа. Собственно хотелось узнать дургие способы. Один я знаю -  это открыть файл в монопольном режиме, если выдаст ошибку - значит уже его кто-то юзает. Кто что посоветует? Или можно ещё перефразировать вопрос так: Как получить список открытых файлов на машине.


Игорь Шевченко   (2004-10-07 18:08:00) [1]

UNIVERSAL   (07.10.04 16:24) [10]


> В частности про режим ядра.


На Delphi режима ядра нету :)


> там есть целый набор полезных классов и, в принципе, сам
> ntddk.pas (правда, не самый полный...)


Да, там 10 функций :)


BiN   (2004-10-07 17:09:00) [2]

UNIVERSAL   (07.10.04 16:24) [10]
Жаль, но модуль я так и не нашёл. Может подробнее расскажете.


http://www.wilsonc.demon.co.uk/files/d7/ntlowlevel/ntlowlevel.zip

там есть целый набор полезных классов и, в принципе, сам ntddk.pas (правда, не самый полный...)


UNIVERSAL   (2004-10-07 16:24:00) [3]

2Игорь ШевченкоСпасибо большое за юнит. Но так как я относительный чайник в программировании такого рода, то хотелось бы узнать где можно прочитать (желательно на русском) об этом всём подробнее. В частности про режим ядра.

2BiNЖаль, но модуль я так и не нашёл. Может подробнее расскажете.


UNIVERSAL   (2004-10-06 16:27:00) [4]

Игорь ШевченкоСпасибо. Посмотрю.


Игорь Шевченко   (2004-10-06 15:46:00) [5]

BiN ©   (06.10.04 15:01) [6]

Пора мне свой юнит NTDLL.PAS обновленный выкладывать :)

UNIVERSAL   (06.10.04 15:28) [7]

Посмотри еще http://www.schevchenko.net.ru/SRC/QuerySystemInformation_60.zip


UNIVERSAL   (2004-10-06 15:28:00) [6]

Спасибо посмотрю.


BiN   (2004-10-06 15:01:00) [7]

Эта функция недокументирована, ее описание есть в ntddk

но в сети как-то попался один хороший пример
присмотрись особенно к модулю unitNTHandles

http://www.wilsonc.demon.co.uk/delphi.htm


UNIVERSAL   (2004-10-06 14:06:00) [8]

Сорри описался. но и это функцию я не нашёл ZwQuerySystemInformation


UNIVERSAL   (2004-10-06 14:03:00) [9]

Кстати ZwQueryInformation - этого не нашёл. Может вы имели ввиду это - ZwQueryInformationFile


UNIVERSAL   (2004-10-06 14:01:00) [10]

Ща в МСДН посмотрю, но можно и дальше. Просто никогда энтого раньше не делал. Так что заранее (и не заранее) благодарен.


BiN   (2004-10-06 13:36:00) [11]

С помощью функции ZwQuerySystemInformation получаешь список хэндлов в системе, в виде массива TSystemHandleTableEntryInfo
Затем сверяешь значение поля ObjectTypeIndex с неким FileTypeIndex (он рвен вроду бы 26, но корректнее его определить в рантайме)
Дальше объяснять?


UNIVERSAL   (2004-10-06 11:41:00) [12]

Да и ещё, каким именно процессом(приложением) он занят?


Наверх

Титульная страница Поиск, карта сайта Написать письмо