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

网络小工具 ShareView

作者:闵涛 文章来源:闵涛的学习笔记 点击数:8284 更新时间:2009/4/23 18:28:24
k(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure TvComputerContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
  private
    { Private declarations }
    procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
    procedure WMHotkeyHandle(var Msg: Tmessage); message WM_HOTKEY;
  public
    { Public declarations }
    FRootNode, FCurNode: TTreeNode;
    FSendToNames: TStrings;
    TrayNotifyIcon1: TTrayNotifyIcon;
    HotKeyid: Integer;
    procedure ShowMainForm(Sender: TObject);
  end;

var
  MainForm: TMainForm;

implementation

uses MultInst, NetUtils, SendPopupMsg, NetMonUtils, ShlObj, LKQDialogs, ShellAPI, Clipbrd;

{$R *.DFM}

procedure TMainForm.FormActivate(Sender: TObject);
begin
  FRootNode := TvComputer.Items.add(TvComputer.topitem, ''''整个网络'''');
  FRootNode.imageindex := 0;
  TvComputer.SetFocus;
end;

procedure TMainForm.TvComputerClick(Sender: TObject);
var
  SelectedNode, Node: TTreeNode;
  Strs: TStrings;
  I: Integer;
begin
  if TvComputer.Selected = nil then
    Exit;
  SelectedNode := TvComputer.Selected;
  Strs := TStringList.Create;
  try
    if SelectedNode.Level = 0 then
    begin
      if SelectedNode.count = 0 then
      begin
        GetNetGroupNameList(Strs);
        for I := 0 to Strs.Count - 1 do
        begin
          Node := TvComputer.Items.AddChild(FRootNode, Strs[I]);
          Node.ImageIndex := 1;
          Node.SelectedIndex := 1;
        end;
      end;
    end;
    if SelectedNode.level = 1 then
    begin
      if SelectedNode.count = 0 then
      begin
        GetComputerNameList(SelectedNode.Text, Strs);
        for I := 0 to Strs.Count - 1 do
        begin
          Node := TvComputer.Items.AddChild(SelectedNode, Strs[I]);
          Node.ImageIndex := 2;
          Node.SelectedIndex := 4;
        end;
      end;
    end;
    if SelectedNode.level = 2 then
    begin
      if FSendToNames.IndexOf(SelectedNode.Parent.Text + ''''*'''') <> -1 then Exit;
      if FSendToNames.IndexOf(SelectedNode.Text) = -1 then
        FSendToNames.Add(SelectedNode.Text);
      EdToName.Text := FSendToNames.CommaText;
    end;
  finally
    Strs.Free;
  end;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  FSendToNames := TStringList.Create;
  SetWindowLong(EdToName.Handle, GWL_STYLE,
    GetWindowLong(EdToName.Handle, GWL_STYLE) or
    ES_UPPERCASE);
  SetWindowLong(EdFrom.Handle, GWL_STYLE,
    GetWindowLong(EdFrom.Handle, GWL_STYLE) or
    ES_UPPERCASE);
  TrayNotifyIcon1 := TTrayNotifyIcon.Create(Self);
  with TrayNotifyIcon1 do
  begin
    Icon := Application.Icon;
    Hint := Application.Title;
    OnDblClick := ShowMainForm;
    PopupMenu := PopupMenu1;
    HideTask := False;
    IconVisible := True;
  end;
  Hotkeyid := GlobalAddAtom(''''UserDefineHotKey'''') - $C000;
  RegisterHotkey(Handle, Hotkeyid, MOD_CONTROL, VK_RETURN);
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  FSendToNames.Free;
  TrayNotifyIcon1.Free;
  UnRegisterhotkey(Handle, Hotkeyid);
  DeleteAtom(HotKeyID);
end;

procedure TMainForm.BtnCloseClick(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TMainForm.BtnOkClick(Sender: TObject);
var
  I, J: Integer;
begin
  StatusBar1.SimpleText := '''''''';
  for I := 0 to FSendToNames.Count - 1 do
  begin
    J := SendTextMessage(FSendToNames[I], EdFrom.Text, MemoContents.Lines.Text);
    if J <> 0 then
      StatusBar1.SimpleText := StatusBar1.SimpleText + FSendToNames[I] + '''' '''';
  end;
  if StatusBar1.SimpleText <> '''''''' then StatusBar1.SimpleText := StatusBar1.SimpleText + ''''没有收到'''';
end;

procedure TMainForm.EdToNameChange(Sender: TObject);
var
  NameList: TStrings;
  I: Integer;
begin
  NameList := TStringList.Create;
  try
    NameList.CommaText := EdToName.Text;
    for I := (FSendToNames.Count - 1) downto 0 do
    begin
      if NameList.IndexOf(FSendToNames[I]) = -1 then
        FSendToNames.Delete(I);
    end;
    if EdToName.Text <> FSendToNames.CommaText then
    begin
      FSendToNames.Assign(NameList);
      EdToName.Text := FSendToNames.CommaText;
    end;
  finally
    NameList.Free;
  end;
  btnOK.Enabled := Trim(EdToName.Text) <> '''''''';
end;

procedure TMainForm.ShareRefreshActionExecute(Sender: TObject);
var
  List: TStrings;
  I: Integer;
  OS: Boolean;
  ShareInfo2Obj: TShareInfo2Obj;
begin
  if not IsNT(OS) then Exit;
  List := TStringList.Create;
  try
    GetShares(List);
    LvShares.Items.BeginUpdate;
    try
      LvShares.Items.Clear;
      for I := 0 to List.Count - 1 do
      begin
        ShareInfo2Obj := TShareInfo2Obj(List.Objects[I]);
        if ShareInfo2Obj <> nil then
        begin
          with LvShares.Items.Add do
          begin
            Caption := List[I];
            SubItems.Add(ShareInfo2Obj.shi2_path);
          end;
        end;
      end;
    finally
      LvShares.Items.EndUpdate;
    end;
  finally
    List.Free;
  end;
end;

procedure TMainForm.ShareCloseActionExecute(Sender: TObject);
begin
  if (LvShares.Items.Count = 0) or (LvShares.Selected = nil) then
    Exit;
  if Application.MessageBox(''''确实要关闭该共享吗?'''', ''''提示'''', MB_YESNO + MB_ICONQUESTION) <> ID_YES then
    Exit;
  CloseShare(LvShares.Selected.Caption);
  LvShares.Items.Delete(LvShares.Selected.Index);
end;

procedure TMainForm.LvSharesMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ShareCloseAction.Enabled := (LvShares.Items.Count <> 0) and (LvShares.Selected <> nil);
  N13.Enabled := ShareCloseAction.Enabled;
end;

function SelectDirectory: string;
var
  lpItemID: PItemIDList;
  BrowseInfo: TBrowseInfo;
  DisplayName: array[0..MAX_PATH] of Char;
  TempPath: array[0..MAX_PATH] of Char;
begin
  FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
  BrowseInfo.hwndOwner := MainForm.Handle;
  BrowseInfo.pszDisplayName := @DisplayName;
  BrowseInfo.lpszTitle := ''''请选择共享目录:'''';
  BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
  lpItemID := SHBrowseForFolder(BrowseInfo);
  if Assigned(lpItemId) then begin
    SHGetPathFromIDList(lpItemID, TempPath);
    GlobalFreePtr(lpItemID);
  end else Result := '''''''';
  Result := string(TempPath);
end;

procedure TMainForm.TvComputerContextPopup(Sender: TObject;
  MousePos: TPoint; var Handled: Boolean);
begin
  FCurNode := TvComputer.GetNodeAt(MousePos.X, MousePos.Y);
  if FCurNode <> nil then
    N16.Enabled := FCurNode.Level = 1;
end;


procedure TMainForm.ShareAddActionExecute(Sender: TOb

上一页  [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……
    咸宁网络警察报警平台