Rede - compartilhar o hd ou pasta |
Top Previous Next |
const NERR_Success = 0; NERR_BASE = 2100; STYPE_DISKTREE = 0; STYPE_PRINTQ = 1; SHI50F_RDONLY = 1; SHI50F_FULL = 2; SHI50F_DEPENDSON = (SHI50F_RDONLY or SHI50F_FULL); SHI50F_PERSIST = 256; SHI50F_SYSTEM = 512;
function NetShareAdd(ServerName: PChar; ShareLevel: SmallInt; Buffer: Pointer; Size: Word): Integer; stdCall; external 'netapi32.dll';
var Form1: TForm1;
implementation
{$R *.DFM}
type SHARE_INFO_2 = record shi2_netname : PWideChar; shi2_type : DWORD; shi2_remark : PWideChar; shi2_permissions : DWORD; shi2_max_uses : DWORD; shi2_current_uses: DWORD; shi2_path : PWideChar; shi2_passwd : PWideChar; end;
const ACCESS_READ = $01; ACCESS_WRITE = $02; ACCESS_CREATE = $04; ACCESS_EXEC = $08; ACCESS_DELETE = $10; ACCESS_ATRIB = $20; ACCESS_PERM = $40; ACCESS_ALL = ACCESS_READ or ACCESS_WRITE or ACCESS_CREATE or ACCESS_EXEC or ACCESS_DELETE or ACCESS_ATRIB or ACCESS_PERM;
function ShareResource2(const ServerName: PChar; const FilePath, NetName, Remark: PWideChar; const ShareType: Byte; const Permissions: DWORD; const RWPass: PWideChar): Integer; var ShareI: SHARE_INFO_2; PErr : DWORD; begin FillChar(ShareI, SizeOf(ShareI), 0); ShareI.shi2_netname := NetName; ShareI.shi2_type := ShareType; ShareI.shi2_remark := Remark; ShareI.shi2_permissions := Permissions; ShareI.shi2_permissions := Cardinal(-1); ShareI.shi2_path := FilePath; ShareI.shi2_max_uses := 90; ShareI.shi2_passwd := RWPass; PErr := 0; Result := NetShareAdd(ServerName, 2, @ShareI, PErr); end;
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := IntToStr(ShareResource2(nil, 'C:\TEMP', 'CTemp', 'Teste de Compartilhamento!', STYPE_DISKTREE, ACCESS_ALL, '')); end; |