Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];
abajo

¿Y puede bloquear el acceso a la carpeta, algo así como fmShareExclusive, pero para la carpeta? Encontrar ramas similares


Arte (2001-12-18 15:12) (1)

А можно заблокировать доступ к папке,что-то типа fmShareExclusive ,но для папки???


Alexey Petrov (2001-12-18 16:08) (1)

С помощью CreateFile можно открыть и директорию, в т.ч. и эксклюзивно.

Inténtalo ...

Подробности в MSDN


cdaDmitriy2001-12-18 17:20) (1)

> Алексей Петров ©
SOURCE for use CreateFile for
С помощью CreateFile можно открыть и директорию ? ...


Alexey Petrov (2001-12-18 17:23) (1)

> cdaDmitriy © (18.12.01 17:20)
Читайте MSDN.
Source я в тривиальных случаях не привожу.


Arte (2001-12-18 17:25) (1)

Я обязательно попробую ,но от слов MSDN веет чем-то мелкософтовым,а я про Дельфи!!



cdaDmitriy2001-12-18 17:40) (1)

> Алексей Петров © я в тривиальных случаях не привожу ?
я пробовал ... попробуй идай пример.


cdaDmitriy2001-12-18 17:47) (1)

S1:="D:\ICON\"; в т.ч. и эксклюзивно
H := Integer(CreateFile(PChar(S1), GENERIC_READ, 0 , nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0));
label1.Caption:=inttostr(H);
if H < 0 then raise EFCreateError.CreateResFmt(@S, [S1]);


Arte (2001-12-18 17:53) (1)

cdaDmitriy откудова ты ето достал,я не сомневаюсь в работоспособности кода,но охота почитать по поводу директорий


cdaDmitriy2001-12-18 17:59) (1)

help for CreateFile and попробовал


Arte (2001-12-18 20:24) (1)

Ребят вы или дураки или читать не умеете.Был задан вопрос Заблокировать папку надо,доступ к ней. А вы про файлы мне???Я сначала не поверил,но потом я все выяснил,все написанное здесь,кроме моего вопроса - чушь!



Anatoly Podgoretsky (2001-12-18 20:28) (1)

Да и как ты думаешь будут тебе отвечать в дальнейшем, я не хочу проверять приведенный код, но хинт следующий Папка такой же файл.


Arte (2001-12-18 21:39) (1)

Ђнатолий,значит Я - дурак!!! ? все тут!!! џ пробовал и код приведенный выше и сам писал и ничего не прошло,если указывать директорию - ничего не менЯетсЯ,а если файл , то все ЋЉ работает,файл заблокирован!!! ? как с этим быть???


Alexey Petrov (2001-12-19 08:41) (1)

Еще хинт:
В коде, приведенном "cdaDmitriy © (18.12.01 17:47)" 2 ошибки.
1. В имени директории конечный "\" - лишний.
2. Проверка открылся ли файл должна выполняться проверкой на INVALID_HANDLE_VALUE, а не <0. В текущей версии Delphi и WinAPI Integer(INVALID_HANDLE_VALUE) конечно <0, но это может поменяться, к тому-же, теоретически возможно появление корректного Handle, такого, что Integer(Handle)<0.
3. Для проверки ошибок WinAPI - удобнее писать
Win32Check(H<>INVALID_HANDLE_VALUE)

> Arte © (18.12.01 17: 25)
Если MSDN смущает - смотри в SDK help, это собственно усеченная версия MSDN-а. А из Delphi все API прекрасно вызывается.


cdaDmitriy2001-12-19 09:31) (1)

> Алексей Петров ©

1. В имени директории конечный "\" - лишний.
он не лишний а избыточный :

lpFileName

Points to a null-terminated string that specifies the name of the object (file, pipe, mailslot, communications resource, disk device, console, or directory) to create or open.

If *lpFileName is a path, there is a default string size limit of MAX_PATH characters. This limit is related to how the CreateFile function parses paths.
Windows NT: You can use paths longer than MAX_PATH characters by calling the wide (W) version of CreateFile and prepending "\\?\" to the path. The "\\?\" tells the function to turn off path parsing. This lets you use paths that are nearly 32,000 Unicode characters long. You must use fully-qualified paths with this technique. This also works with UNC names. The "\\?\" is ignored as part of the path. For example, "\\?\C:\myworld\private" is seen as "C:\myworld\private", and "\\?\UNC\tom_1\hotstuff\coolapps" is seen as "\\tom_1\hotstuff\coolapps".

2. посмотри реализацию unit Classes; хотя
Win32Check(H<>INVALID_HANDLE_VALUE) надежней.


{ TFileStream }

constructor TFileStream.Create(const FileName: string; Mode: Word);
comenzar
if Mode = fmCreate then
comenzar
FHandle := FileCreate(FileName);
if FHandle < 0 then
raise EFCreateError.CreateResFmt(@SFCreateError, [FileName]);
fin de lo contrario
comenzar
FHandle := FileOpen(FileName, Mode);
if FHandle < 0 then
raise EFOpenError.CreateResFmt(@SFOpenError, [FileName]);
fin;
fin;

Art © все работает если хочешь пиши пришлю



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

arriba















Memoria: 0.85 MB
Tiempo: 0.141 c
14-22401
wHammer
2001-11-09 12:56
2002.01.08
Eso fue interesante?


6-22289
Kirill
2001-10-03 18:33
2002.01.08
Menú contextual de IE


1-22017
Astillero
2001-12-17 19:45
2002.01.08
¿Cómo poner tu línea en la edición actual?


1-22040
agarrar
2001-12-18 18:18
2002.01.08
Alineación de prueba TRICHEdit


4-22463
Dmitry Alferev
2001-11-01 23:38
2002.01.08
FindResource no encuentra un recurso





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish Francés
gallego georgiano Alemán Griego criollo haitiano hebreo hindi Húngaro islandés Indonesian irlandés Italiano Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español