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: tobject);
var
name, dir: string;
begin
if sys_selectdirectory(self.handle, dir, '请选择共享目录:', true) then
begin
name := inputbox('输入', '请输入共享名称', extractfilename(dir));
addshare(name, dir);
with lvshares.items.add do
begin
caption := name;
subitems.add(dir);
end;
end;
end;
procedure tmainform.sessionrefreshactionexecute(sender: tobject);
var
list: tstrings;
i: integer;
os: boolean;
sessioninfo502obj: tsessioninfo502obj;
begin
if not isnt(os) then exit;
list := tstringlist.create;
try
getsessions(list);
lvsessions.items.clear;
for i := 0 to list.count - 1 do
begin
sessioninfo502obj := tsessioninfo502obj(list.objects[i]);
if sessioninfo502obj <> nil then
begin
with lvsessions.items.add do
begin
caption := list[i];
subitems.add(sessioninfo502obj.sesi502_username);
subitems.add(inttostr(sessioninfo502obj.sesi502_num_opens));
subitems.add(integertotimestr(sessioninfo502obj.sesi502_time));
subitems.add(integertotimestr(sessioninfo502obj.sesi502_idle_time));
end;
end;
end;
finally
list.free;
end;
end;
procedure tmainform.sessioncloseactionexecute(sender: tobject);
begin
if (lvsessions.items.count = 0) or (lvsessions.selected = nil) then
exit;
if application.messagebox('确实要关闭该会话吗?', '提示', mb_yesno + mb_iconquestion) <> id_yes then
exit;
closesession(lvsessions.selected.caption);
lvsessions.items.delete(lvsessions.selected.index);
end;
procedure tmainform.trafficrefreshactionexecute(sender: tobject);
var
list: tstrings;
i: integer;
os: boolean;
traffic: ttraffic;
begin
if not isnt(os) then exit;
list := tstringlist.create;
try
gettrafficsets(list);
lvtraffic.items.beginupdate;
try
lvtraffic.items.clear;
for i := 0 to list.count - 1 do
begin
traffic := ttraffic(list.objects[i]);
if traffic <> nil then
begin
with lvtraffic.items.add do
begin
caption := list[i];
subitems.add(traffic.mac);
subitems.add(inttostr(traffic.dwinoctets));
subitems.add(inttostr(traffic.dwinoctets));
end;
end;
end;
finally
lvtraffic.items.endupdate;
end;
finally
list.free;
end;
end;
procedure tmainform.timer1timer(sender: tobject);
begin
sharerefreshactionexecute(nil);
sessionrefreshactionexecute(nil);
trafficrefreshactionexecute(nil);