Текущий архив: 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.46 MB
Время: 0.061 c