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

Вниз

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

 
Dr. Andrew   (2005-06-24 05:07) [0]

Мастера! Подскажите - как можно проверить в процедуре сохранения аудио файла - используется ли он другим процессом в настоящее время или нет (при сохранении его с тем же именем, что и при открытии)? И как можно закрыть этот процесс, чтобы корректно перезаписать аудио файл? Спасибо всем за практический пример.


 
Dr. Andrew   (2005-06-24 05:24) [1]

Небольшое уточнение вопроса!
При вызове в процедуре сохранения аудио файла следующего кода - FileStream := TFileStream.Create(SaveDialog1.FileName, fmCreate), где FileStream : TFileStream, и сохранении его без изменения имени, Windows выдает ошибку, что данный файл уже используется другим процессом и не может его открыть или создать. Как можно либо до вызова этого кода проверить - занят ли аудио файл другим процессом или корректно его все же открыть? Пожалуйста, маленький практический пример. Всем спасибо!


 
XProger ©   (2005-06-24 05:56) [2]


var
F : File of Byte;
begin
FileMode := 2;
AssignFile(F, SaveDialog1.FileName);
{$I-}
Reset(F);
{$I+}
if IOResult <> 0 then Занят;
end;


 
Dr. Andrew   (2005-06-24 11:11) [3]

Большое спасибо за практический ответ!
Этим мы можем узнать - занят ли данный файл другим процессом.
А каким образом можно все же его перезаписать под тем же именем, независимо от того, что он используется другим процессом, после открытия его в процедуре, например OpenAudioFile, с помощью OpenDialog? Например, как это реализовано в Cool Edit Pro 2.0? Там, после открытия файла без его переименования, можно постоянно его перезаписывать под тем же именем.


 
Dr. Andrew   (2005-06-24 11:28) [4]

Код не работает!

function ActiveFile (FileName : string): Boolean;
    var F : File of Byte;
begin
 Result := False;
 FileMode := 2;
 AssignFile(F, FileName);
{$I-}
 Reset(F);
{$I+}
 if IOResult <> 0 then Result := True;
end;

В процедуре сохранения аудио файла я прописал следующий код:

if ActiveFile(SaveDialog1.FileName) then Exit;
FileStream := TFileStream.Create(SaveDialog1.FileName, fmCreate);

Функция ActiveFile всегда равна False!

После открытия файла, а затем его сохранения под тем же именем Windows выдает ошибку:

---------------------------
Debugger Exception Notification
---------------------------
Project soundeditor.exe raised exception class EFCreateError with message "Cannot create file "E:\My Test\sounds\mysoundwav.wav". The process cannot access the file because it is being used by another process". Process stopped. Use Step or Run to continue.
---------------------------
OK   Help  
---------------------------

Какой есть выход? В чем моя ошибка?


 
XProger ©   (2005-06-24 13:25) [5]

Моя ошибка, файл не закрывал...

function ActiveFile(FileName: string): boolean;
var
F : File of Byte;
begin
FileMode := 2;
AssignFile(F, FileName);
{$I-}
Reset(F);
{$I+}
Result := IOResult <> 0;
if Result then
CloseFile(F);
end;

Осуществить перезапись занятого процессом файла, можно только посредством убийства занимающего процесса.


 
XProger ©   (2005-06-24 13:26) [6]

*if not Result then


 
Dr. Andrew   (2005-06-24 14:04) [7]

Осуществить перезапись занятого процессом файла, можно только посредством убийства занимающего процесса.

А как это, например, можно сделать?
Для этого можно использовать, например Hook?
Пожалуйста, приведите пример типичного кода, например с Hook.
Спасибо за помощь!


 
XProger ©   (2005-06-24 18:38) [8]

http://delphimaster.net/view/4-1119347185/



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

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

Наверх




Память: 0.49 MB
Время: 0.045 c
3-1128259959
alpine
2005-10-02 17:32
2005.11.13
Вопрос по SQL запросу


1-1129878710
zorik
2005-10-21 11:11
2005.11.13
Как реализовать обычное математическое округление


14-1129741679
pazitron_brain
2005-10-19 21:07
2005.11.13
Помогите найти ветку.


2-1129550865
Yurij-7
2005-10-17 16:07
2005.11.13
Query и вызов соотвествующей записи


14-1129748306
Bogdan1024
2005-10-19 22:58
2005.11.13
как программирование на вас влияет?