⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 cvery_608119760.rar
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TNetResourceArray = ^TNetResource;   //网络资源类型的数组
  TfrmMain = class(TForm)
    GroupBox1: TGroupBox;
    StaticText1: TStaticText;
    Edit1: TEdit;
    GroupBox2: TGroupBox;
    Button2: TButton;
    Button1: TButton;
    GroupBox3: TGroupBox;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.DFM}

Function GetUserResource( UserName : string ; var List : TStringList ) : Boolean;
Var
  NetResource : TNetResource;
  Buf : Pointer;
  Count,BufSize,Res : DWord;
  Ind : Integer;
  lphEnum : THandle;
  Temp : TNetResourceArray;
Begin
  Result := False;
  List.Clear;
  FillChar(NetResource, SizeOf(NetResource), 0);  //初始化网络层次信息
  NetResource.lpRemoteName := @UserName[1];       //指定计算机名称
  Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY,RESOURCEUSAGE_CONNECTABLE, @NetResource,lphEnum);
   //获取指定计算机的网络资源句柄
 If Res <> NO_ERROR Then exit;                   //执行失败
  While True Do                                  //列举指定工作组的网络资源
   Begin
    Count := $FFFFFFFF;                            //不限资源数目
    BufSize := 8192;                              //缓冲区大小设置为8K
    GetMem(Buf, BufSize);                   //申请内存,用于获取工作组信息
    Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);
                              //获取指定计算机的网络资源名称
  If Res = ERROR_NO_MORE_ITEMS Then break;//资源列举完毕
   If (Res <> NO_ERROR) then Exit;        //执行失败
     Temp := TNetResourceArray(Buf);
    For Ind := 0 to Count - 1 do
     Begin
     List.Add(Temp^.lpRemoteName);
     Inc(Temp);
    End;
 End;
 Res := WNetCloseEnum(lphEnum);          //关闭一次列举
 If Res <> NO_ERROR Then exit;           //执行失败
   Result := True;
   FreeMem(Buf);
End;


procedure TfrmMain.Button1Click(Sender: TObject);
var
  List:TstringList;
  i:integer;
begin
try
  List:=TstringList.Create;
  if GetUserResource(edit1.text,List) then
    if List.count=0 then         //指定计算机下没有找到共享资源
      begin
        memo1.Lines.Add (edit1.text+'下没有找到共享资源!');
      end
   else
     memo1.Lines.Add (edit1.text+'下的所有共享资源如下:');
     for i:=0 to List.Count-1  do
      begin
        Memo1.lines.Add (List.strings[i]);
      end;
finally
   List:=TstringList.Create;     //如有异常则释放分配的资源
end;
end;


procedure TfrmMain.FormCreate(Sender: TObject);
begin
memo1.Lines .clear;
end;

procedure TfrmMain.Button2Click(Sender: TObject);
begin
  frmMain.Close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -