Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
15-1213651482
k2_
2008-06-17 01:24
2008.08.03
Симпатишный дизайн, полюбуйтесь.


15-1213659824
Randew
2008-06-17 03:43
2008.08.03
Подскажите литературу


3-1203485088
bagryan
2008-02-20 08:24
2008.08.03
коннект со второго раза


15-1213854495
kadr
2008-06-19 09:48
2008.08.03
Кларион и ADO


2-1215282066
observateur
2008-07-05 22:21
2008.08.03
ClientDataSet





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский