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 n15click(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;