delphi中如何遍历网络上(LAN)的所有共享资源?[无内容]

dazzling2003 2003-10-15 04:24:19
LAN
...全文
50 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dazzling2003 2003-10-28
  • 打赏
  • 举报
回复
有没有更简单的方法?
或可通过SHELLTREEVIEW来解决?
yeeyee 2003-10-18
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdMessageClient, IdSMTP, StdCtrls;

type
TNetResourceArray=^TNetResource;
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
Label1: TLabel;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }

end;

var
Form1: TForm1;

implementation

{$R *.dfm}

Function GetUserResource( UserName : string ; var List : TStringList ) : Boolean;
Var
NetResource1 : TNetResource;
Buf1 : Pointer;
Count,BufSize,Res : DWord;
Ind1 : Integer;
lphEnum1 : THandle;
Temp1 : TNetResourceArray;
Begin
Result := False;
List.Clear;
FillChar(NetResource1, SizeOf(NetResource), 0);
NetResource1.lpRemoteName := @UserName[1];
Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY,RESOURCEUSAGE_CONNECTABLE, @NetResource1,lphEnum1);

If Res <> NO_ERROR Then exit;
While True Do
Begin
Count := $FFFFFFFF;
BufSize := 8192;
GetMem(Buf1, BufSize);
Res := WNetEnumResource(lphEnum1, Count, Pointer(Buf1), BufSize);

If Res = ERROR_NO_MORE_ITEMS Then break;
If (Res <> NO_ERROR) then Exit;
Temp1 := TNetResourceArray(Buf1);
For Ind1 := 0 to Count - 1 do
Begin
List.Add(Temp1^.lpRemoteName);
Inc(Temp1);
End;
End;
Res := WNetCloseEnum(lphEnum1);
If Res <> NO_ERROR Then exit;
Result := True;
FreeMem(Buf1);
End;

procedure TForm1.Button1Click(Sender: TObject);
var
List1:TstringList;
i:integer;
begin
try
List1:=TstringList.Create;
if GetUserResource(edit1.text,List1) then
if List1.count=0 then
begin
showmessage(edit1.text+'不在局域网上或没有共享资源!');
end
else
memo1.Lines.Add (edit1.text+'下共享了如下资源');
for i:=0 to List1.Count-1 do
begin
Memo1.lines.Add (List1.strings[i]);
end;
finally
List1:=TstringList.Create;
end;

end;

end.


用来获取指定计算机

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧