转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
网络小工具 ShareView         ★★★★

网络小工具 ShareView

作者:闵涛 文章来源:闵涛的学习笔记 点击数:8291 更新时间:2009/4/23 18:28:24
Mem(Buf1, BufSize);              //申请内存,用于获取工作组信息
  List := TList.Create;
  try
    Res := WNetEnumResource(lphEnum, Count, Pointer(Buf1), BufSize);
    if (Res = ERROR_NO_MORE_ITEMS) or (Res <> NO_ERROR) then
      Exit;                          //资源列举完毕 或者 执行失败
    P := Buf1;
    for I := 0 to Count - 1 do
    begin
      List.Add(p);
      Inc(P);
    end;
    Res := WNetCloseEnum(lphEnum); //关闭一次列举
    if Res <> NO_ERROR then exit;
    for I := 0 to List.Count -1 do
    begin
      NetResource := TNetResource(List.Items[I]^);
      Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
        RESOURCEUSAGE_CONTAINER, @NetResource, lphEnum);
      if Res <> NO_ERROR then break; //执行失败
      Names.Clear;
      while True do
      begin
        Count := $FFFFFFFF; //不限资源数目
        GetMem(Buf2, BufSize); //申请内存,用于获取工作组信息
        try
          Res := WNetEnumResource(lphEnum, Count, Pointer(Buf2), BufSize); //获取一个网络类型的文件资源信息
          if (Res = ERROR_NO_MORE_ITEMS) or (Res <> NO_ERROR) then
            Break;                          //资源列举完毕 或者 执行失败
          P := Buf2;
          for J := 0 to Count - 1 do //列举各个工作组的信息
          begin
            Names.Add(P^.lpRemoteName);
            Inc(P);
          end;
        finally
          FreeMem(Buf2, BufSize);
        end;
      end;
    end;
  finally
    FreeMem(Buf1, BufSize);
    List.Free;
  end;
end;

procedure GetComputerNameList(GroupName: string;Names: TStrings);
var
  NetResource: TNetResource;
  P: ^TNetResource;
  lphEnum: THandle;
  Buf1: Pointer;
  Count, BufSize, Res: DWORD;
  I: Integer;
begin
  FillChar(NetResource, SizeOf(NetResource), 0); //初始化网络层次信息
  NetResource.lpRemoteName := @GroupName[1]; //指定工作组名称
  NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER; //类型为服务器(工作组)
  NetResource.dwUsage := RESOURCEUSAGE_CONTAINER;
  NetResource.dwScope := RESOURCETYPE_DISK; //列举文件资源信息
  //获取指定工作组的网络资源句柄
  Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
    RESOURCEUSAGE_CONTAINER, @NetResource, lphEnum);
  if Res <> NO_ERROR then Exit; //执行失败
  Names.Clear;
  while True do //列举指定工作组的网络资源
  begin
    Count := $FFFFFFFF; //不限资源数目
    BufSize := 8192; //缓冲区大小设置为8K
    GetMem(Buf1, BufSize); //申请内存,用于获取工作组信息
    try
      Res := WNetEnumResource(lphEnum, Count, Pointer(Buf1), BufSize);
      if Res = ERROR_NO_MORE_ITEMS then break; //资源列举完毕
      if (Res <> NO_ERROR) then Exit; //执行失败
      P := Buf1;
      for I := 0 to Count - 1 do //列举工作组的计算机名称
      begin
        Names.Add(P^.lpRemoteName + 2);
        Inc(P);
      end;
    finally
      FreeMem(Buf1);
    end;
  end;
end;

end.

unit MainFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ImgList, StdCtrls, ExtCtrls, ComCtrls, ToolWin, Menus, ActnList, TrayIcon;

type
  TMainForm = class(TForm)
    StatusBar1: TStatusBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    TreeImageList: TImageList;
    Panel1: TPanel;
    Panel2: TPanel;
    gbxTraffic: TGroupBox;
    bvlTraffic: TBevel;
    lvTraffic: TListView;
    gbxShares: TGroupBox;
    gbxSessions: TGroupBox;
    bvlSessions: TBevel;
    lvSessions: TListView;
    pmShare: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    pmSession: TPopupMenu;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    Splitter1: TSplitter;
    PnlMsg: TPanel;
    Splitter2: TSplitter;
    Splitter3: TSplitter;
    PnlClnt: TPanel;
    PnlClntTop: TPanel;
    PnlClntBtm: TPanel;
    BtnOk: TButton;
    BtnClose: TButton;
    GroupBox1: TGroupBox;
    MemoContents: TMemo;
    Splitter4: TSplitter;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    EdToName: TEdit;
    Label2: TLabel;
    EdFrom: TEdit;
    Panel3: TPanel;
    TvComputer: TTreeView;
    pmTraffic: TPopupMenu;
    N8: TMenuItem;
    ActionList1: TActionList;
    ShareRefreshAction: TAction;
    ShareCloseAction: TAction;
    ShareAddAction: TAction;
    SessionRefreshAction: TAction;
    SessionCloseAction: TAction;
    NetImageList: TImageList;
    TrafficRefreshAction: TAction;
    Bevel1: TBevel;
    LvShares: TListView;
    Timer1: TTimer;
    FileRefreshAction: TAction;
    FileCloseAction: TAction;
    pmFiles: TPopupMenu;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    Splitter6: TSplitter;
    GroupBox3: TGroupBox;
    Bevel2: TBevel;
    LvFiles: TListView;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    pmTree: TPopupMenu;
    N16: TMenuItem;
    PopupMenu1: TPopupMenu;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure TvComputerClick(Sender: TObject);
    procedure BtnCloseClick(Sender: TObject);
    procedure BtnOkClick(Sender: TObject);
    procedure EdToNameChange(Sender: TObject);
    procedure ShareRefreshActionExecute(Sender: TObject);
    procedure ShareCloseActionExecute(Sender: TObject);
    procedure LvSharesMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ShareAddActionExecute(Sender: TObject);
    procedure SessionRefreshActionExecute(Sender: TObject);
    procedure SessionCloseActionExecute(Sender: TObject);
    procedure TrafficRefreshActionExecute(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FileRefreshActionExecute(Sender: TObject);
    procedure lvSessionsMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure LvFilesMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FileCloseActionExecute(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N15Clic

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  下一页 >> 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台