Текущий архив: 2003.09.04;
Скачать: CL | DM;
Вниз
Захват папки Найти похожие ветки
← →
Vint45 (2003-08-23 16:40) [0]Подскажите пожайлуста, как можно проверить захвачена ли папка каким-либо приложением или процессом?
← →
Anatoly Podgoretsky © (2003-08-23 16:43) [1]Попытаться самому ее захватить, если откажут, то значит захвачена.
← →
Vint45 (2003-08-23 16:46) [2]Я примерно так и пытался сделать функцией FileOpen, но что-то она у меня не отрабатывает, всегда возвращает хандл=-1
FileOpen("D:\1\",fmShareExclusive);
← →
Anatoly Podgoretsky © (2003-08-23 16:52) [3]А какая ошибка?
← →
Vint45 (2003-08-23 16:54) [4]ошибки нету, просто Handle равен -1 после открытия, хотя эта папка ничем не занята, видимо функция FileOpen не приспособлена для работы с папками.
← →
Anatoly Podgoretsky © (2003-08-23 16:56) [5]Как докажешь, что нет ошибки, как раз Handle < 0 говорит о наличии ошибки, так какая конкретно ошибка?
← →
Vint45 (2003-08-23 17:02) [6]да, я торможу :) только вот ошибку не знаю как посмотреть, IOResult=0.
← →
Anatoly Podgoretsky © (2003-08-23 17:04) [7]Существует два основных пути
Win32Check предпочтительно и GetLastError
← →
Vint45 (2003-08-23 17:09) [8]GetLastError возвращает 5
← →
Anatoly Podgoretsky © (2003-08-23 17:11) [9]ERROR_ACCESS_DENIED
← →
Vint45 (2003-08-23 17:31) [10]угу, получается что я не могу получить доступ к папке, отсюда вывод:
1. эта папка кем-то заблокирована
2. функция FileOpen не предназначена для работы с каталогами
Первый вариант отпадает, т.к. папка создана мною недавно и с помощью Far-a спокойно удаляется, причем при создании папки, я из Far-a выхожу. ИМХО остается второй вариант.
Анатолий, ты раньше пользовался этой функцией для проверки захвата папки?
← →
Anatoly Podgoretsky © (2003-08-23 17:47) [11]Это ни чего не значит, возможно у тебя недостаточно прав.
Не было нужды.
← →
Vint45 (2003-08-23 17:56) [12]я работаю с правами администратора...
может я что-то не так делаю, может ты попробуешь реализовать у себя эту процедуру? у меня листинг примерно такой:
FileOpen("D:\1",fmOpenRead or fmShareExclusive);
Application.MessageBox(PChar(SysErrorMessage(GetLastError)),"");
result: access is denied
← →
Anatoly Podgoretsky © (2003-08-23 18:02) [13]Для этого нужно иметь у себя W2K, чего нет.
← →
Vint45 (2003-08-23 18:13) [14]ладно :) раз так не получается, то проверку на захват буду делать через RenameFile(), и хоть папку придется переименовывать туда-сюда, зато эта функция отрабатывает :)
← →
Anatoly Podgoretsky © (2003-08-23 18:44) [15]Цель захвата, если что бы не было доступа, то RenameFile норммально
← →
Vint45 (2003-08-23 19:04) [16]ага, спасибо.
Страницы: 1 вся ветка
Текущий архив: 2003.09.04;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.022 c