Форум: "Основная";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизБлокирование файла Найти похожие ветки
← →
Kniaz © (2004-09-23 15:38) [0]Хочу работать с файлом обычными функциями типа AssignFile, RewRite, ReadLn, WriteLn, но при это мне надо заблокировать этот файл от доступа из других приложений. Как это сделать????
С другими функциями работы с файлами общатся не умею.
← →
Defunct © (2004-09-23 15:50) [1]Система сама заблокирует доступ на запись для других приложений.
← →
Sandman25 © (2004-09-23 15:52) [2]FileMode
← →
ламер © (2004-09-23 16:39) [3][offtop]
RewRite - довольно интересный вариант :)
[/offtop]
← →
Fay © (2004-09-23 17:20) [4]>> Система сама заблокирует доступ на запись для других приложений.
Это где-то написано, или опыт подсказывает?
← →
pasha_golub © (2004-09-23 17:29) [5]Defunct © (23.09.04 15:50) [1]
Ссылочку на инфо, плиз.
← →
Квэнди © (2004-09-23 18:00) [6]Как инетересно... блокирует сама.. забавно даже, т.е. кароч незя открыть несколько одинаковых файлов в блакноте?.. да? :))) во клас был бы :)
← →
Amoeba © (2004-09-23 18:03) [7]
> Квэнди © (23.09.04 18:00) [6]
А с чего ты взял, что после загрузки в блокнот файл остается открытым?
← →
Квэнди © (2004-09-23 18:08) [8]Согласен, при открытии на запись, файл действительно блокируется, приношу свои извинения.
← →
Defunct © (2004-09-23 18:10) [9]Пока файл открыт приложением для записи (выделен системный Handle для записи), доступ по записи к нему другим приложениям заблокирован. Как только вы делаете FileClose/ CloseFile и т.п. блокировка снимается.
Квэнди © (23.09.04 18:00) [6]
Причем блин тут чтение? К тому же блокнот просто читает содержимое файла и сразу же его закрывает.
> Fay © (23.09.04 17:20) [4]
Удалите запущенный EXE файл или попробуйте в него что-то записать. В этом направлении ищите и документацию, искать документацию для того чтобы вам что-то доказать у меня нет ни времени ни желания. В системе не разрешается совместный доступ по записи в файл.
← →
Fay © (2004-09-23 18:22) [10]2 [9] Defunct © (23.09.04 18:10)
> В системе не разрешается совместный доступ по записи в файл.
Да что Вы говорите! Какая нехорошая система! Убил бы.var
h1, h2 : DWORD;
begin
h2 := INVALID_HANDLE_VALUE;
h1 := CreateFile("c:\boot.ini", GENERIC_WRITE, FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
try
if h1 = INVALID_HANDLE_VALUE then RaiseLastOSError;
h2 := CreateFile("c:\boot.ini", GENERIC_WRITE, FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if h2 = INVALID_HANDLE_VALUE then RaiseLastOSError;
finally
if h1 <> INVALID_HANDLE_VALUE then CloseHandle(h1);
if h2 <> INVALID_HANDLE_VALUE then CloseHandle(h2);
end;
end;
← →
pasha_golub © (2004-09-23 19:14) [11]Fay © (23.09.04 18:22) [10]
Да что Вы говорите! Какая нехорошая система! Убил бы.
А говоришь - жена юрист ;-)
← →
Fay © (2004-09-23 19:15) [12]2 [11] pasha_golub © (23.09.04 19:14)
Если сказал - значит так и есть.
8)
← →
Defunct © (2004-09-23 19:20) [13]Fay © (23.09.04 18:22) [10]
>> В системе не разрешается совместный доступ по записи в файл.
Ок, это преувеличение.
> Да что Вы говорите! Какая нехорошая система! Убил бы.
> FILE_SHARE_WRITE
Ок, можно получить совместный доступ при большом желании.
по-умолчанию Delphi открывает (fmOpenWrite, fmReadWrite), так что все чики-пики, файл будет заблокированным:
CreateFile(PCHar(FileName), GENERIC_WRITE <or GENERIC_READ> , 0, nil, OPEN_EXISTING, 0, 0);
Кто по-умолчанию блокирует доступ? Система или делфи или ползователь. IMHO фраза [1] вполне корректна даже после замечания [10].
← →
Fay © (2004-09-23 19:24) [14]2 [13] Defunct © (23.09.04 19:20)
> IMHO фраза [1] вполне корректна даже после замечания [10].
Корректна, конечно. Только немножко преувеличена до некорректности. Не делает она этого "автоматически". Ну эта, которая система.
P.S.
"делфи или пользователь" - это как?
← →
Defunct © (2004-09-23 19:28) [15]> "делфи или пользователь" - это как?
отож, что никак.
> Только немножко преувеличена до некорректности. Не делает она этого "автоматически". Ну эта, которая система.
Ну дык, пост [6] довел меня до некорректного преувеличения.
Сорри.
← →
Fay © (2004-09-23 19:43) [16]На самом деле, таке впечатление ("автоматически") запросто может сложиться. Благо в Борланде работают крупные мастера по "заворачиванию" API. 8)
← →
GanibalLector © (2004-09-23 20:02) [17]>Система сама заблокирует доступ на запись для других приложений.
>>Это где-то написано, или опыт подсказывает?
Поверьте,недавно сам проверял!!!
А ты попробуй открыть файл...затем sleep(10000); и за это время мощи его из другого приложения.Сразу говорю,НЕ УДАЛИШЬ!!!
Кстати,насчет БЛОКНОТА,винда открывает файло,закидывает текс в редактор и закрывает файло.
← →
Fay © (2004-09-23 20:05) [18]2 [17] GanibalLector © (23.09.04 20:02)
> А ты попробуй открыть файл...затем sleep(10000); и за это
> время мощи его из другого приложения.Сразу говорю,НЕ УДАЛИШЬ!!!
Проверять лениво. Легче поверить. Но что нам демонстрирует данный опыт?
← →
Fay © (2004-09-23 20:07) [19]2 [17] GanibalLector © (23.09.04 20:02)
В догонку. Удалил без вопросов.
← →
Fay © (2004-09-23 20:11) [20]2 [17] GanibalLector © (23.09.04 20:02)
var
h1 : DWORD;
begin
h1 := CreateFile("c:\111.txt", GENERIC_WRITE, FILE_SHARE_WRITE or FILE_SHARE_DELETE, nil, OPEN_EXISTING, 0, 0);
try
if h1 = INVALID_HANDLE_VALUE then RaiseLastOSError;
Sleep(10100);
finally
if h1 <> INVALID_HANDLE_VALUE then CloseHandle(h1);
end;
end;
← →
Defunct © (2004-09-23 20:13) [21]Fay © (23.09.04 20:07) [19]
Cжульничал! ;)
FILE_SHARE_DELETE
← →
Fay © (2004-09-23 20:14) [22]2 [21] Defunct © (23.09.04 20:13)
Я ещё и Del нажал! Неслыхано! 8)
А это разве запрещено?
← →
Defunct © (2004-09-23 20:15) [23]Fay, давайте не будем спорить о возвышенном. Ясное дело сделать при большом желании можно практически все.
← →
Fay © (2004-09-23 20:19) [24]Признаться, я не горел желанием. 8)
И я не спорю. Я на самом деле думал, что что-то упустил, и мне чичяз на халяву всё расскажут. 8)
← →
Defunct © (2004-09-23 20:32) [25]Fay © (23.09.04 20:19) [24]
Вы убиваете веру! ;)
Теперь пойдут безграмотрые трояны, вирусня и т.п. ;)
← →
Fay © (2004-09-23 20:38) [26]2 [25] Defunct © (23.09.04 20:32)
> Теперь пойдут безграмотрые трояны, вирусня и т.п. ;)
Займитесь лучше чем-нибудь другим 8)
← →
Defunct © (2004-09-23 20:50) [27]Fay © (23.09.04 20:38) [26]
Дык, и занят другим.
А этим занимался в далеком прошлом и тяги к такого рода занятиям сейчас нет, да и вознгаграждение не прельщает. Максимум что можно получить - попасть в список Касперского с лейбой "Очень опасный стелс-призрак вирус" или и того хуже "Студенческий вирус, очень опасен из-за ошибки ... ", а то и совсем худо - по голове и штраф. А вот для более молодого поколения такая тема весьма актуальна, написать эдакого электронного зверька, который может сам позаботиться о себе. Очень даже повысит кругозор.
← →
Fay © (2004-09-23 20:55) [28]2 [27] Defunct © (23.09.04 20:50)
> Очень даже повысит кругозор
Для этого даже есть даже специальные учреждения. Полный пансион! 8)
← →
Defunct © (2004-09-23 21:25) [29]Fay © (23.09.04 20:55) [28]
Вот вы на шутку перевели, а зря. Для того чтобы написать диллетантский файловый вирус потребуется хотя бы год подготовки. Чтобы написать нормальный файловый вирус - 2 года подготовки + год на написание.
Только главное упор не на деструкцию делать, а на "выживание" в сложнейших условиях (антивирусные мониторы - церберы, сканеры-убийцы! да и ОС - не подарок и т.п.).
Сложность такого рода программ, гораздо выше чем, любой прикладной программы, да и вчаствости антивирус (говорю по собственному опыту) гораздо проще написать. Полноценный AV монитор с эвристикой можно сделать за пол-года, когда полноценный вирус требует год(ы).
PS: под полноценным вирусом подразумаваю, программу-генератор динамического полимофного кода с полным сохранением функциональности первоначальной копии.
← →
Fay © (2004-09-23 21:36) [30]
> да и ОС - не подарок
Хотя об этом и написано в лицензионном соглашении, но есть люди (и их довольно много), которые считают, что эта_самая_ось - настоящий подарок для вирусмейкеров. Но эта тема (вирусы-вредилусы и т.д.) мне абсолютно не близка.
2 Kniaz © (23.09.04 15:38) [Ответить]
http://delphimaster.net/view/4-1095950229/
За время, сопоставимое с тем, которое мы (я и Defunct) потратили на переписку в этой ветке, вполне можно освоить "CreateFile & K"
Удачи.
← →
Defunct © (2004-09-23 21:41) [31]мдя.. под вечер грамматика хромает ;)
поправлюсь в только в термине, а то смысл теряется.
"полимофного" читать - полиморфного.
← →
Defunct © (2004-09-23 21:52) [32]>Хотя об этом и написано в лицензионном соглашении, но есть люди (и их довольно много), которые считают, что эта_самая_ось - настоящий подарок для вирусмейкеров.
В сравнении с другими - да, а так в ней тоже хватает всяких примочек и узких мест.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.035 c