Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Вниз

Права доступа к ресурсу? 


Дмитрий Д.   (2001-11-21 12:22) [0]

Как определить права пользователя на какой нибудь открытый дисковый ресурс ?
например есть сетевой диск и папка на нем расшарена только для чтения, то как это узнать ?
Подскажите плиз!



Дмитрий Д.   (2001-11-21 12:27) [1]

добавочка:
определение прав будет происходить с машины это самого пользователя.
серваки крутятся на NT4.0



Дмитрий Д.   (2001-11-22 12:41) [2]

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



Deep   (2001-11-24 08:43) [3]

Вот тебе примерчик и ссылочка где это лежит
http://delphi.xonix.ru/faq/lan/share02.shtml

Примечание : Вы должны быть в группе адимнистраторов или Account Operators на выбранном компьютере


Type
_SHARE_INFO_2 = Record
shi2_netname: PWideChar;
shi2_type: DWORD;
shi2_remark: PWideChar;
shi2_permissions: DWORD;
shi2_max_uses: Integer;
shi2_current_uses: DWORD;
shi2_path: PWideChar;
shi2_passwd: PWideChar;
End;
SHARE_INFO_2 = _SHARE_INFO_2;

Function NetShareAdd (

servername: PWideChar;
level: DWORD;
buf: Pointer;
parm_err: LPDWORD
): LongInt; stdcall; external "netapi32.dll";

Function NetShareDel (

servername: PWideChar;
netname: PWideChar;
reserved: DWORD
): LongInt; stdcall; external "netapi32.dll";



// Создаем сетевой диск
Procedure AddShare;

Var
buf: SHARE_INFO_2;
LocalPath: PWideChar;
Size: Integer;
ServerName:PWideChar;
Begin
ServerName:="Server";
// Переводим String в WideChar
Size := SizeOf (WideChar) * 256;
GetMem (LocalPath, Size);
StringToWideChar (diskpath.Text, LocalPath, Size);

// сетевое имя диска (Будет доступен как \\Server\diskname)
buf.shi2_netname := "diskname";
buf.shi2_type := STYPE_DISKTREE;

// Коментарий
buf.shi2_remark := "comment";
buf.shi2_permissions := ACCESS_ALL;

// Неограниченное кол-во одновременно работающих пользователей
buf.shi2_max_uses := -1;

// Каталог на сервере
buf.shi2_path := LocalPath;
buf.shi2_current_uses := 1;
buf.shi2_passwd := "";

If NetShareAdd (ServerName, 2, @buf, Nil) <> 0
Then showmessage ("Ошибка при создании сетевого диска");
FreeMem (LocalPath);
End;



// Удаляем сетевой диск
Procedure DelShare;

Begin
If NetShareDel (Nil, "diskname", 0) <> 0
Then ShowMessage ("Ошибка при удалении сетевого диска");
End;

P.S. У меня была та же проблема, но с 98-й виндой, ответа так и не получил :((




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.034 c
4-42905           Витамин               2001-12-17 21:54  2002.02.14  
Не нашел хороших доков по хукам, а есть проблема....


1-42786           SP                    2002-01-31 11:53  2002.02.14  
Контрольна сумма файла


1-42758           ТеньЛуны              2002-01-29 23:43  2002.02.14  
Need help!!!


3-42697           @andrew               2002-01-22 15:30  2002.02.14  
ПРИВЕТ ВСЕМ!!! Помоготе построить запрос:


4-42901           Anderius              2001-11-17 21:12  2002.02.14  
Как насильно завершить другую программу?