Главная страница
    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
3-1203485088
bagryan
2008-02-20 08:24
2008.08.03
коннект со второго раза


15-1213951588
Сергей_77
2008-06-20 12:46
2008.08.03
Неограниченное использование платной программы


2-1214920523
Pasha L
2008-07-01 17:55
2008.08.03
Как узнать глобальные координаты контрола ?


2-1215148540
matriza
2008-07-04 09:15
2008.08.03
Поиск текста в Excel


15-1213615001
wild
2008-06-16 15:16
2008.08.03
TDirectoryListBox





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский