Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-10966
nikkie
2003-08-15 15:56
2003.09.04
что-то меня на смех прошибло...


1-10782
NavigatorV
2003-08-23 01:31
2003.09.04
Manifest


1-10707
bfg1000ke
2003-08-20 17:38
2003.09.04
Canvas


14-10926
iZEN
2003-08-17 00:05
2003.09.04
msblast - прикрытие более изощрённой атаки?


14-10959
KPY
2003-08-15 08:34
2003.09.04
Народ помогите друга отговорить женится !