Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2009, 07:36   #1
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию Проблема с созданием заблокированного файла

Здрасте, господа программисты !
Проблема заключаться в том, что не получаться заблокировать файл, я блокирую через функцию "OpenFile".

Код:
var
MyFile: string;
begin
MyFile := OpenFile('reg.sys', ofStruct, - Здесь ошибка, пишет что типа надо ()
OF_CREATE or OF_READWRITE or OF_SHARE_EXCLUSIVE );
end;
ofStruct- это же просто инфа о файле, открытым функцией "OpenFile".
С LockFile- не знаю как. может кто-то знает другой способ или решение этого ?

Заранее спасибо!
uberchel вне форума Ответить с цитированием
Старый 24.04.2009, 08:03   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Попробуй так :
Код:
fileopen('reg.sys',fmshareexclusive);
... типа открыли файл с запретом доступа к нему остальным ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 24.04.2009, 08:11   #3
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Спосибо за ответ.
Но нет, мне не открыть надо, а заблокировать файл !
uberchel вне форума Ответить с цитированием
Старый 24.04.2009, 08:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых OpenFile возвращает не String а THandle
Во-вторых нужно описать переменку, принимающую инфу по открытому файлу - _OFSTRUCT:

Код:
var
MyFile: THANDLE; os:_OFSTRUCT;
begin
MyFile := OpenFile('reg.sys', @os,OF_CREATE or OF_READWRITE or OF_SHARE_EXCLUSIVE );
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.04.2009, 08:36   #5
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Во-первых OpenFile возвращает не String а THandle
Во-вторых нужно описать переменку, принимающую инфу по открытому файлу - _OFSTRUCT:

Код:
var
MyFile: THANDLE; os:_OFSTRUCT;
begin
MyFile := OpenFile('reg.sys', @os,OF_CREATE or OF_READWRITE or OF_SHARE_EXCLUSIVE );
end;
Пишет : Types of actual and formal var parameters must be identical.

Если конечно @os убрать @ и просто os- то файль заблокирован, пока прога работает, это та я и др процедурой могу, а мне же надо что-б он был заблокирован всегда! можно конечно на explorer
повесить этот файл, но зачем ресурсы жрать!!!

Последний раз редактировалось uberchel; 24.04.2009 в 08:47.
uberchel вне форума Ответить с цитированием
Старый 24.04.2009, 08:56   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Если конечно @os убрать @ и просто os- то файль заблокирован, пока прога работает
Просто в хелпе WINAPI и в описаниях модуля windows немного отличий.
Код:
а мне же надо что-б он был заблокирован всегда!
Напиши демона, который откроет файл, и не будет его закрывать. Пусть демон в процессах висит.
Если хочеш малый размер можно на асме написать, не сильно и сложно.

P.S. Даже такая "защита" обходится. Учти.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.04.2009, 09:15   #7
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Да, ты прав, пишу новую защиту в 4 уровня и проблема только вот в этом,
контроль целостности приложения.
А демона писать или на системный процесс вешать, не хочу уже говорил,
тем более пишу твикер!
Знаю, что в реестре можно где-то прописать - но точно где не знай !!!
uberchel вне форума Ответить с цитированием
Старый 24.04.2009, 09:33   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Знаю, что в реестре можно где-то прописать - но точно где не знай !!!
А не проще настроить доступ к этому фалу административными средствами?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.04.2009, 09:42   #9
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А не проще настроить доступ к этому фалу административными средствами?
Да, дак вот, это всё где-то в реестре, но я не знаю, если знаешь напиши пожалуйста !

Последний раз редактировалось uberchel; 24.04.2009 в 10:05.
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с созданием текстового файла BuT@JL Помощь студентам 3 27.02.2009 18:04
Проблема с созданием CButton st1q Общие вопросы C/C++ 5 14.09.2008 13:57
Проблема с созданием компонентов dr.Chas Общие вопросы Delphi 4 25.04.2008 20:12
Проблема с созданием файла справки belochka Общие вопросы Delphi 5 05.11.2007 18:24