Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Доступ на папку только на чтение! [D6, Win95/98, WinXP]


serko ©   (2005-11-17 23:21:00) 


...
implementation
...

function NetShareAdd(ServerName: PChar;
Level: Word;
PShareInfo: PChar;
ParmErr: DWord): dword; stdcall; external
 'NetApi32.dll';

...

procedure TForm1.Button1Click(Sender: TObject);
const
STYPE_DISKTREE = $0;
STYPE_PRINTQ = $1;
STYPE_DEVICE = $2;
STYPE_IPC = $3;

ACCESS_NONE = $0;
ACCESS_READ = $1;
ACCESS_WRITE = $2;
ACCESS_CREATE = $4;
ACCESS_EXEC = $8;
ACCESS_DELETE = $10;
ACCESS_ATRIB = $20;
ACCESS_PERM = $40;
ACCESS_FINDFIRST = $80;
ACCESS_GROUP = $8000;
ACCESS_ALL = (ACCESS_READ or ACCESS_WRITE or     ACCESS_CREATE or ACCESS_EXEC or
  ACCESS_DELETE or ACCESS_ATRIB or ACCESS_PERM or     ACCESS_FINDFIRST);
type
_SHARE_INFO_2 = record
  shi2_netname: LPWSTR;
  shi2_type: DWORD;
  shi2_remark: LPWSTR;
  shi2_permissions: DWORD;
  shi2_max_uses: DWORD;
  shi2_current_uses: DWORD;
  shi2_path: LPWSTR;
  shi2_passwd: LPWSTR;
end;
var
shi: _SHARE_INFO_2;
res: DWORD;
err: Cardinal;
begin
err := 0;
with shi do
begin
  shi2_netname := 'TestShare';
  shi2_type := STYPE_DISKTREE;
  shi2_remark := 'My Test Share';
  shi2_permissions := ACCESS_READ;
  shi2_max_uses := 10;
  shi2_current_uses := 0;
  shi2_path := 'D:\Temp';
  shi2_passwd := nil;
end;
res := NetShareAdd(nil, 2, @shi, err);
if res <> 0 then
  ShowMessage(SysErrorMessage(GetLastError))
else SHChangeNotify(SHCNE_NETSHARE, SHCNF_PATH,                       PChar(shi.shi2_path), nil);
end;
<\Code>

Этот код открывает полный доступ на папку 'D:\Temp', а как сделать только чтение?


serko   (2005-11-18 13:50:00) [1]


> А так не проще FileSetAttr('D:\Temp', faReadOnly)?


Мне нужен сетевой доступ на чтение!


> Lamer@fools.ua ©   (18.11.05 09:40) [2]


и как же тогда подправить мой код?


Lamer@fools.ua   (2005-11-18 09:40:00) [2]

>> serko ©   (17.11.05 23:21)

shi502_permissions
...
Note that the Windows Server 2003 family, Windows XP, Windows 2000, and Windows NT do not support share-level security. For more information about controlling access to securable objects, see Access Control, Privileges, and Securable Objects.

shi502_security_descriptor
Specifies the SECURITY_DESCRIPTORassociated with this share.


Новичек   (2005-11-18 01:52:00) [3]

А так не проще FileSetAttr('D:\Temp', faReadOnly)?


Наверх

Титульная страница Поиск, карта сайта Написать письмо