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.
//////////////////////////////////////////////////////////////////////////////////
然后在在Unit1中调用:
unit Unit1;
procedure TForm1.Button1Click(Sender: TObject);
var
S1, S2: string;
begin
if EditDir.Text = '' then
begin
Application.MessageBox('请先选择一个目录!', '黑洞', MB_ICONINFORMATION + MB_OK);
BtSelect.Click;
Exit;
end;
if EditSharename.Text = '' then
begin
Application.MessageBox('请先输入共享名称!', '黑洞', MB_ICONINFORMATION + MB_OK);
EditSharename.SetFocus;
Exit;
end;
S1 := UpperCase(EditDir.Text);
S2 := UpperCase(EditSharename.Text);
DeleteShare(nil, Pchar(S2));
sleep(500);
if CheckBox1.Checked then
ShareResource(nil, pchar(S1), Pchar(S2), Pchar(EditInfo.Text), STYPE_DISKTREE, SHI50F_FULL { or SHI50F_SYSTEM}, '', '')
else
ShareResource(nil, pchar(S1), Pchar(S2), Pchar(EditInfo.Text), STYPE_DISKTREE, SHI50F_RDONLY { or SHI50F_SYSTEM}, '', '')
{注意:改为ShareResource(nil, pchar(S1), Pchar(S2), Pchar(EditInfo.Text), STYPE_DISKTREE, SHI50F_FULL or SHI50F_SYSTEM, '', '')
击右键将看不见共享,但实际上已经共享了!
还有一个小技巧:共享名后面叫一个$号则共享后别人打开网上邻居看不到却可以访问.
}
end;
procedure TForm1.BtSelectClick(Sender: TObject);
var
directory: string;
begin
if SelectDirectory('选择一个目录', '', directory) then EditDir.Text := directory;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
S: string;
begin
S := UpperCase(EditSharename.Text);
if S <> '' then
DeleteShare(nil, Pchar(S))
else
Application.MessageBox('请先输入共享名称!', '黑洞', MB_ICONINFORMATION + MB_OK);
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
if haha then
begin
haha := False;
Self.Left := 0;
while Self.Left < ((screen.width div 2) - (Self.Width div 2)) do
begin
Self.Left := self.Left + 2;
end; //窗口从左向右出现
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
while Self.Left < screen.Width do
begin //窗口向右消失
Self.Left := Self.Left + 10;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
haha := True;
end;