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

Вниз

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

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

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

Наверх





Память: 0.48 MB
Время: 0.04 c
3-1128508944
dragon_dp
2005-10-05 14:42
2005.11.13
Как узнать существует ли таблица в БД?


2-1129919546
aadamov
2005-10-21 22:32
2005.11.13
Cравнение Time() с переменной типа TTime


4-1126089449
Хинт
2005-09-07 14:37
2005.11.13
Проблема с ReadProcessMemory


2-1130299499
UVV
2005-10-26 08:04
2005.11.13
Можно ли так, или я многого хочу от Delphi


5-1109235757
Павел
2005-02-24 12:02
2005.11.13
Поясните свойство ComponentState





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