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] ... 下一页 >> 没有相关教程
|