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

Вниз

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

 
AlexSt ©   (2007-09-03 17:56) [0]

Подскажите, кто знает как можно считать данные из файла открытого другим приложением, если скопировать функцией CopyFile я его могу, а открыть только для чтения нет.


 
Dib@zol ©   (2007-09-03 17:57) [1]

> скопировать функцией CopyFile я его могу, а открыть только
> для чтения нет.

Дык открывай для чтения/записи и плюс расшаривай доступ!


 
umbra ©   (2007-09-03 17:57) [2]

скопировать, открыть копию и читать из нее.


 
AlexSt ©   (2007-09-03 18:29) [3]

Как расшарить? Как это сделать?

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


 
umbra ©   (2007-09-03 18:32) [4]

Если занятый файл нельзя открыть для чтения с правами на совместный доступ для любых операций, то легче всего подождать, пока файл освободится. Конечно, если это не файл подкачки :)


 
Dib@zol ©   (2007-09-03 18:34) [5]

> Как расшарить? Как это сделать?

CreateFile + FILE_SHARE_READ or FILE_SHARE_WRITE + F1


 
AlexSt ©   (2007-09-03 18:56) [6]


> CreateFile + FILE_SHARE_READ or FILE_SHARE_WRITE + F1

Есть пример работы с CreateFile


 
Dib@zol ©   (2007-09-03 19:32) [7]

function GetFileData(FileName:string):pointer;
 F:=CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if F=INVALID_HANDLE_VALUE then exit;
 FindFirstFile(PChar(FileName), wfd);
 S:=wfd.nFileSizeLow;
 LongInt(P):=LocalAlloc(GMEM_FIXED, S);
 ReadFile(F, Result^, S, T, nil);
 CloseHandle(F);
end;

...

P:pointer;

...

P:=GetFileData("c:\1.txt");
// Некие действия
LocalFree(LongInt(P));


 
Dib@zol ©   (2007-09-03 19:58) [8]

Поправлюсь: LongInt(Result):=LocalAlloc(GMEM_FIXED, S);



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
4-1175360086
Vovka
2007-03-31 20:54
2007.09.30
Пропадающий курсор


2-1188816975
Layner
2007-09-03 14:56
2007.09.30
Определить уникальный номер Windows Registered to (2000-XP-Vista)


2-1188558769
Dib@zol
2007-08-31 15:12
2007.09.30
SetWindowRgn


15-1188570006
Черный Шаман
2007-08-31 18:20
2007.09.30
Русский код, бессмысленный и беспощадный.


15-1188799204
yura123
2007-09-03 10:00
2007.09.30
коннекшн между домом