Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.03;
Скачать: CL | DM;

Вниз

Получить содержимое заблокированного файла   Найти похожие ветки 

 
rainbow_d   (2007-10-28 23:33) [0]

Суть проблемы. Создается пустой файл, после чего доступ к файлу блокируется на уровне ОС и производится запись данных, а за тем файл закрывается, через какое-то время с него снимается блоикировка и он удаляется..

Каким образом можно получить содержимое этого файла после записи в него данных?

Перепробовал все, что только можно..Пробовал делать copyfile при обновлении даты последнего изменения, пробовал постоянно получать к файлу доступ и копировать в случае, если он получен. пробовал вычислять размер файла и копировать его, если размер больше 0 кб.  Ничего не помогло, или получаю пустой файл или программа виснет :(


 
Andrey_rus ©   (2007-10-29 02:57) [1]

Удалено модератором


 
Германн ©   (2007-10-29 03:05) [2]

Удалено модератором


 
vpbar ©   (2007-10-29 08:32) [3]

Удалено модератором


 
Игорь Шевченко ©   (2007-10-29 10:55) [4]


> Каким образом можно получить содержимое этого файла после
> записи в него данных?


ReadDirectoryChangesW не поможет ?


 
MetalFan ©   (2007-11-01 09:50) [5]

пиши драйвер... и/или лезь в Ring0... по другому имхо до файла не достать...


 
Riply ©   (2007-11-01 10:07) [6]

> [5] MetalFan ©   (01.11.07 09:50)
> пиши драйвер... и/или лезь в Ring0... по другому имхо до файла не достать...
Достать-то можно. Вот только стоит ли овчинка выделки ? :)


 
apic   (2007-11-01 12:59) [7]

Ни какой драйвер нафик писать не надо. Есть исходник на wasm.ru, только на Си. Кто умеет переделывать с Си на Делфи у того нет проблем. Модуль тоже скачать в инете можно (сказать, что в делфи по сравнению Си нет некоторых модулей - вообще промолчать). Я пробывал написать что-то подобное и модуль скачал и дополнил его, но исходник толком не перевел на делфи (с Си у меня огромные проблемы) и бросил я это дело. А вообще с железом ВСЕ можно делать с помощью функции DeviceIoControl (особенно если дело касается дисковых устройств) и никакой Ring0 нафик не нужен, только примеров по работе с DeviceIoControl нигде найти не возможно. С помощью этой функции пишутся дифрагментаторы, программы для копирования защищенных или программно заблокированных файлов, у меня лично есть примерчик блокировки CD-ROM"а и т.д. и т.п.


 
tesseract ©   (2007-11-01 13:32) [8]


> А вообще с железом ВСЕ можно делать с помощью функции DeviceIoControl
> (особенно если дело касается дисковых устройств


С данными на дисках работают через CreateFile. DeviceIoControl служит для посылки драйверу команд. У каждого драйвера они свои, так что фанатеть по ней не стоит.


>  С помощью этой функции пишутся дифрагментаторы, программы
> для копирования защищенных или программно заблокированных
> файлов,


А чего  его сразу не через int21 ? Дефрагментаторы для Windows 2k+  пишуться через API Windows.


 
Riply ©   (2007-11-01 21:20) [9]

> [7] apic   (01.11.07 12:59)
> только примеров по работе с DeviceIoControl нигде найти не возможно.
А самому написать ? Там на каждую команду две, ну три строчки :)
И ничего сложного. Почти все команды документированы и есть в Help`е.
Функция ReadFile на порядок сложнее. :)

>С помощью этой функции пишутся дифрагментаторы,
>программы для копирования защищенных или программно заблокированных файлов,

Ты бы хоть "imho", а то некоторые могут воспрнять подобные утверждения за чистую монету :)
Как ты с ее помощью собрался прочитать файл, который не открыть даже с FILE_ANY_ACCESS ?
А без Handle`а этого файла, тебе никакая DeviceIoControl не поможет.
Вытаскивать Handle из чужого процесса и "дупликатить" его врядли тебе позволят,
если уж позаботились о блокировке файла (уж не говоря о том, что этого Handle`а там может и не быть).


 
Leonid Troyanovsky ©   (2007-11-01 21:32) [10]


> Riply ©   (01.11.07 21:20) [9]

> Вытаскивать Handle из чужого процесса и "дупликатить" его
> врядли тебе позволят

Необязательно вытаскивать оттуда хендл файла,
достаточно хендла его проекции только для чтения .

--
Regards, LVT.


 
Riply ©   (2007-11-01 22:18) [11]

>[10] Leonid Troyanovsky ©   (01.11.07 21:32)
> Необязательно вытаскивать оттуда хендл файла,
> достаточно хендла его проекции только для чтения .

Sorry... Поторопилась. :)



Страницы: 1 вся ветка

Текущий архив: 2008.08.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
15-1213623237
Terr
2008-06-16 17:33
2008.08.03
Возможно ли использование программ


2-1214917979
Pasha L
2008-07-01 17:12
2008.08.03
Оператор SomeDynamicArray:=nil делает не то, что хотелось бы =)


2-1215150495
Владимир
2008-07-04 09:48
2008.08.03
Вывод документа MS Word на форму


2-1215196825
roof
2008-07-04 22:40
2008.08.03
Randomize & массив


15-1213783775
Алекс
2008-06-18 14:09
2008.08.03
С использ чего писать БД