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

Вниз

Не полная блокировка файла   Найти похожие ветки 

 
multiflex   (2008-07-16 13:34) [0]

Прошу прощщения, если ранее вопрос обсуждался, но я почемуто не нашол этого. В общем суть: выгружаю файл, запускаю ассоциированное приложения, жду пока отработает, забираю файл назад. Это очень кратко. Проблема в следующем: нужно на время работы запущщеного ПО защитить файл от удаления, но при этом оставить возможность его изменить, если это реально конечно. файлы могут быть абсолютно разными - DOC,BMP,PCB,CDR,psd,...etc.. Както вот думаю сделать так, чтобы приложение не тормознуло при создании файла на этом месте, и при записи... Или всетаки это бред заработавшегося студента? о_О

ЗЫ. Запускать процесс от другого пользователя, предварительно дав ему права доступа NTFS ??? Если да - то покажите как создать пользователя с логином/паролем и назначить права доступа на файл соответственно этому юзеру, я запутался весь =( + к томуже владелец должен быть

ЗЗЫ. Самая суть в том, что доступ к файлу должен получить только созданный мною процесс и никто иначе, так наверно корректнее. Винды XP-2000-Vista (обязательна). Мож внедрить в процесс чонить?? УЖС, помогите плииз!!!


 
Renegat   (2008-07-16 13:57) [1]

А если в самом начале работы тупо сбросить дамп файла в память, а при окончании - восстановить?


 
Smile   (2008-07-16 14:04) [2]


> Renegat   (16.07.08 13:57) [1]

А как быть с

> при этом оставить возможность его изменить


 
Renegat   (2008-07-16 14:06) [3]

А как это стыкуется с
> доступ к файлу должен получить только созданный мною процесс и никто иначе

?


 
MultIfleX   (2008-07-16 14:21) [4]

ну блин, хрен знает. ну ладно, упростимся, я создаю процесс.... прилинковываю библиотеку,.... что мне в ней написать чтобы файл нельзя было удалить??? Или опять бред?? Может его открыть с каким либо параметром?


 
MultIfleX   (2008-07-16 14:26) [5]

Может же приложение резервировать файл для себя каким либо образом, чтобы ему можно было все - а другим нельзя?? Чтото такое было...


 
Renegat   (2008-07-16 14:27) [6]

Ты определись: что с этим файлом разрешено делать стороннему, т.е. не-твоему, процессу? И вообще, что именно ты хочешь таким путём реализовать (а вдруг есть для этого и менее зверские методы ;D)?


 
clickmaker ©   (2008-07-16 14:41) [7]

> нужно на время работы запущщеного ПО защитить файл от удаления

CreateFile без флага FILE_SHARE_DELETE, но с флагами READ/WRITE разве не помогает?


 
MultIfleX   (2008-07-16 14:48) [8]


>Renegat [6]

в первом посте все описал, прога должна при необходимости давать редактировать содержащийся в БД файл, при этом исключая вмешательство левых приложений. ПРО УДАЛЕНИЕ Я ПЕРЕГНУЛ - пусть удаляет его если хочет, но тока мой процесс, а не левый.


> clickmaker ©   [7]

не пробывал пока, а что будет если запущщеный процесс вздумает его удалить перед перезаписью (проги всякие бывают) - чувствую он дико обломается.


 
Игорь Шевченко ©   (2008-07-16 14:51) [9]


> пусть удаляет его если хочет, но тока мой процесс, а не
> левый.


вообще без SHARE открывай и делай с ним, что хошь


 
Сергей М. ©   (2008-07-16 14:53) [10]


> прога должна при необходимости давать редактировать содержащийся
> в БД файл


Давать кому ?

И что значит "содержащийся в БД файл" ? В какой БД и в каком виде он содержится на момент попытки его редактирования кем/чем бы то ни было ?


 
Правильный$Вася   (2008-07-16 15:46) [11]

ниче не понял
то "запускаю ассоциированное приложение", то "только мой процесс"
то файл, то БД
то другой пользователь
винегрет какой-то...


 
Сергей М. ©   (2008-07-16 16:07) [12]


> винегрет какой-то


Рискну протелепатировать насчет ингредиентов:

1. Содержимое вожделенных файлов хранится в виде blob-полей каких-то таблиц некоей БД

2. Автор в процессе своего приложения тащит эти блобы, сохраняет в виде отдельных файлов на каком-либо томе, доступном другим процессам, затем открывает и редактирует эти файлы обычным образом, боясь при этом, что какой-то другой процесс в этот момент займется тем же самым с этими файлами вплоть до их удаления


 
Правильный$Вася   (2008-07-16 16:12) [13]


> Рискну протелепатировать насчет ингредиентов:

это и я допетрил
но причем тут другой пользователь и ассоциированное приложение, которое "только мой процесс"?

ps я ждал объясненийот автора, а то онтаки не научится внятно говорить, только булькать


 
multiflex   (2008-07-16 17:24) [14]


> Рискну протелепатировать насчет ингредиентов:

Да,  именно так, телепатор не плох, хотя в принципе из всей белиберды выше сказанной мной наверно чтото было ясно, раз он смог "зацепиться" )), пусть в полях, может и с сетевого хранилища гружу - в принципе не суть важно. Вот к примеру и вправду боюсь (хотя скорее небольшое предостережение, т.к. кто редактировал и когда будет ясно, просто не хотелось бы чтобы это сделало чье либо написанное во вред ПО). Какие рекомендации сможете дать по этому поводу?


> ps я ждал объясненийот автора, а то онтаки не научится внятно
> говорить, только булькать

Вах, дарогой Васёк, абижаэш!!! Ну перетрудился я маласть, в запарке молю, чо так невежественно к людям относиться, тем более с которыми лично не знаком? Не хорошо...


 
multiflex   (2008-07-16 17:27) [15]


> то "запускаю ассоциированное приложение", то "только мой
> процесс"

Все очень просто, попробую сказать не булькая:
1. Да, запускаю, и предельно рад этому =)))))))
2. "только мой процесс" - ну а какже, если я к созданому процессу прилинкую DLL, и буду писать для нее код, это разве уже будет не мой процесс, а? Я ж писал, имхо довольно внятно, просто наверно под конец дня запарился не один я =(

Итак ждем ваши советы !


 
Правильный$Вася   (2008-07-16 17:30) [16]

я так и не понял - твой процесс и есть ассоциированное приложение?
или оно постороннее, которое ты запускаешь? как - вручную или тем самым своим процессом?


 
Игорь Шевченко ©   (2008-07-16 20:17) [17]


> просто наверно под конец дня запарился не один я =(


группа по предварительному сговору - отягчающее обстоятельство. Если ты пишешь DLL, то процесс все равно один - твой


 
MultIfleX   (2008-07-17 07:26) [18]


> я так и не понял - твой процесс и есть ассоциированное приложение?
> или оно постороннее, которое ты запускаешь? как - вручную
> или тем самым своим процессом?

бррр, пшш... мозг лопнул..
оно постороннее, но легко "преобразуется" в СВОЕ внедрением в память СВОЕГО кода, при необходимости.


 
Palladin ©   (2008-07-17 07:36) [19]


> оно постороннее, но легко "преобразуется" в СВОЕ внедрением
> в память СВОЕГО кода

а?


 
Сергей М. ©   (2008-07-17 08:50) [20]


> MultIfleX   (17.07.08 07:26) [18]


Оттого что ты влупил в ВАП процесса чужого (т.е. не твоей разработки) приложения образ своего модуля (т.е. твоей разработки, и не важно dll он или еще что-то), этот "чужой" процесс "чужого" приложения как были чужими, так они чужими и остались.


 
Сергей М. ©   (2008-07-17 08:51) [21]


> MultIfleX


Т.е. библ.модуль в этом процессе твой (подконтролен тебе), а сам процесс не твой, т.е. чужой, т.е. неподконтролен тебе)


 
multiflex   (2008-07-18 08:26) [22]

понял, пасиб. Лан решил пока решать другие вопросы =) Всем спасибо за уделенное время.



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

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

Наверх




Память: 0.52 MB
Время: 0.021 c
2-1216712194
Оксана Вл.
2008-07-22 11:36
2008.08.24
StringGrid


2-1216372635
mahab
2008-07-18 13:17
2008.08.24
proxy


15-1215115864
Petr V. Abramov
2008-07-04 00:11
2008.08.24
Как объяснить женщине


15-1214997047
Smile
2008-07-02 15:10
2008.08.24
:(


2-1216215791
savyhinst
2008-07-16 17:43
2008.08.24
TComponentName = type string;