超难的有关问题:怎么共享文件夹,再设置共享文件夹的共享权限?--------------等ing
超难的问题:如何共享文件夹,再设置共享文件夹的共享权限?--------------等ing
如何共享文件夹,再设置共享文件夹的共享权限?--------------等ing
最好有测试的代码。
谢谢!!!
分不够可以在加
------解决方案--------------------
unit My_Share;
interface
uses
SysUtils;
type
Share_Info50 = packed record
shi50_netname: array[0..12] of Char; {13}
shi50_type: Byte;
shi50_flags: Word;
shi50_remark: PChar;
shi50_path: PChar;
shi50_rw_password: array[0..8] of Char; {9}
shi50_ro_password: array[0..8] of Char;
end;
const
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 ShareResource(ServerName: PChar; FilePath: PChar;
NetName: PChar; Remark: PChar;
ShareType: Byte; Flags: Word;
RWPass: PChar; ROPass: PChar): Integer;
function DeleteShare(ServerName: PChar; NetName: PChar): Integer;
function NetShareAdd(ServerName: PChar; ShareLevel: SmallInt; Buffer: Pointer; Size: Word): Integer; StdCall;
function NetShareDel(ServerName: PChar; NetName: PChar; Reserved: Word): Integer; StdCall;
implementation
function ShareResource(ServerName: PChar; FilePath: PChar;
NetName: PChar; Remark: PChar;
ShareType: Byte; Flags: Word;
RWPass: PChar; ROPass: PChar): Integer; {目录共享}
var
MyShare: Share_Info50;
PMyShare: ^Share_Info50;
begin
strLcopy(MyShare.shi50_netname, NetName, 13);
MyShare.shi50_type := ShareType;
MyShare.shi50_flags := Flags;
MyShare.shi50_remark := Remark;
MyShare.shi50_path := FilePath;
strLcopy(MyShare.shi50_rw_password, RWPass, 9);
strLcopy(MyShare.shi50_ro_password, ROPass, 9);
PMyShare := @MyShare;
Result := NetShareAdd(ServerName, 50, PMyShare, SizeOf(MyShare));
end;
function DeleteShare(ServerName: PChar; NetName: PChar): Integer; {撤消共享目录}
begin
Result := NetShareDel(ServerName, NetName, 0);
end;
function NetShareAdd; external 'SVRAPI.DLL ';
function NetShareDel; external 'SVRAPI.DLL ';{注意:NT/2000下要改为NETAPI32.DLL,可以在程序中判断系统来加载不同的DLL }
end.
------解决方案--------------------
http://community.****.net/Expert/topic/5268/5268367.xml?temp=.3922541
共享访问权限
UserInf.SHI_Permissions
------解决方案--------------------
楼主理解错了,
level 是指用的类型
当level是2时 buf用 SHARE_INFO_2 structures.
当level是502时 buf用 SHARE_INFO_502 structures.
而且可以设置权限,SHARE_INFO_502.shi502_permissions就是设置权限的,包括以下权限:
ACCESS_READ Permission to read data from a resource and, by default, to execute the resource.
ACCESS_WRITE Permission to write data to the resource.
ACCESS_CREATE Permission to create an instance of the resource (such as a file); data can be written to the resource as the resource is created.
如何共享文件夹,再设置共享文件夹的共享权限?--------------等ing
最好有测试的代码。
谢谢!!!
分不够可以在加
------解决方案--------------------
unit My_Share;
interface
uses
SysUtils;
type
Share_Info50 = packed record
shi50_netname: array[0..12] of Char; {13}
shi50_type: Byte;
shi50_flags: Word;
shi50_remark: PChar;
shi50_path: PChar;
shi50_rw_password: array[0..8] of Char; {9}
shi50_ro_password: array[0..8] of Char;
end;
const
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 ShareResource(ServerName: PChar; FilePath: PChar;
NetName: PChar; Remark: PChar;
ShareType: Byte; Flags: Word;
RWPass: PChar; ROPass: PChar): Integer;
function DeleteShare(ServerName: PChar; NetName: PChar): Integer;
function NetShareAdd(ServerName: PChar; ShareLevel: SmallInt; Buffer: Pointer; Size: Word): Integer; StdCall;
function NetShareDel(ServerName: PChar; NetName: PChar; Reserved: Word): Integer; StdCall;
implementation
function ShareResource(ServerName: PChar; FilePath: PChar;
NetName: PChar; Remark: PChar;
ShareType: Byte; Flags: Word;
RWPass: PChar; ROPass: PChar): Integer; {目录共享}
var
MyShare: Share_Info50;
PMyShare: ^Share_Info50;
begin
strLcopy(MyShare.shi50_netname, NetName, 13);
MyShare.shi50_type := ShareType;
MyShare.shi50_flags := Flags;
MyShare.shi50_remark := Remark;
MyShare.shi50_path := FilePath;
strLcopy(MyShare.shi50_rw_password, RWPass, 9);
strLcopy(MyShare.shi50_ro_password, ROPass, 9);
PMyShare := @MyShare;
Result := NetShareAdd(ServerName, 50, PMyShare, SizeOf(MyShare));
end;
function DeleteShare(ServerName: PChar; NetName: PChar): Integer; {撤消共享目录}
begin
Result := NetShareDel(ServerName, NetName, 0);
end;
function NetShareAdd; external 'SVRAPI.DLL ';
function NetShareDel; external 'SVRAPI.DLL ';{注意:NT/2000下要改为NETAPI32.DLL,可以在程序中判断系统来加载不同的DLL }
end.
------解决方案--------------------
http://community.****.net/Expert/topic/5268/5268367.xml?temp=.3922541
共享访问权限
UserInf.SHI_Permissions
------解决方案--------------------
楼主理解错了,
level 是指用的类型
当level是2时 buf用 SHARE_INFO_2 structures.
当level是502时 buf用 SHARE_INFO_502 structures.
而且可以设置权限,SHARE_INFO_502.shi502_permissions就是设置权限的,包括以下权限:
ACCESS_READ Permission to read data from a resource and, by default, to execute the resource.
ACCESS_WRITE Permission to write data to the resource.
ACCESS_CREATE Permission to create an instance of the resource (such as a file); data can be written to the resource as the resource is created.