![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить используется ли файл другим приложением? [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]Да и ещё, каким именно процессом(приложением) он занят?