procedure TForm1.getdomainlist(const group: string; ts: tstrings); var groupr:Tnetresource; nethand:Thandle; buffsize,count:Dword; buffer:pointer; i: integer; rb: TnetresourceArray; bs: string; begin fillchar(groupr,sizeof(Tnetresource),0); groupr.dwScope:=RESOURCE_GLOBALNET; groupr.dwType:=RESOURCETYPE_DISK; groupr.lpRemoteName:=pchar(group); groupr.dwDisplayType:=RESOURCEDISPLAYTYPE_SERVER; groupr.dwUsage:=RESOURCEUSAGE_CONNECTABLE; if wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,@groupr,nethand)<>NO_ERROR THEN begin showmessage('no net!'); exit; end; buffsize:=sizeof(tnetresource)*1024; count:=$ffffffff; getmem(buffer,buffsize); if wnetenumresource(nethand,count,buffer,buffsize)=NO_ERROR then begin rb:=tnetresourcearray(buffer); for i:=0 to count-1 do begin bs:=copy(rb^.lpRemoteName,0,strlen(rb^.lpRemoteName)); ts.Add(bs); inc(rb); end; end; wnetcloseenum(nethand); dispose(buffer); end;
ts.Add(bs); 老于:我运行到这里就出现Abstract Error错误。 我是这样调用的: var ts: tstrings; begin ts:= tstrings.Create; getdomainlist('workgroup',ts); end;
var ts: tstringlist; begin ts:= tstringlist.Create; getdomainlist('workgroup',ts); end;
procedure TForm1.getdomainlist(const group: string; ts: tstrings);
var
groupr:Tnetresource;
nethand:Thandle;
buffsize,count:Dword;
buffer:pointer;
i: integer;
rb: TnetresourceArray;
bs: string;
begin
fillchar(groupr,sizeof(Tnetresource),0);
groupr.dwScope:=RESOURCE_GLOBALNET;
groupr.dwType:=RESOURCETYPE_DISK;
groupr.lpRemoteName:=pchar(group);
groupr.dwDisplayType:=RESOURCEDISPLAYTYPE_SERVER;
groupr.dwUsage:=RESOURCEUSAGE_CONNECTABLE;
if wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,@groupr,nethand)<>NO_ERROR THEN
begin
showmessage('no net!');
exit;
end;
buffsize:=sizeof(tnetresource)*1024;
count:=$ffffffff;
getmem(buffer,buffsize);
if wnetenumresource(nethand,count,buffer,buffsize)=NO_ERROR then
begin
rb:=tnetresourcearray(buffer);
for i:=0 to count-1 do
begin
bs:=copy(rb^.lpRemoteName,0,strlen(rb^.lpRemoteName));
ts.Add(bs);
inc(rb);
end;
end;
wnetcloseenum(nethand);
dispose(buffer);
end;
老于:我运行到这里就出现Abstract Error错误。
我是这样调用的:
var ts: tstrings;
begin
ts:= tstrings.Create;
getdomainlist('workgroup',ts);
end;
begin
ts:= tstringlist.Create;
getdomainlist('workgroup',ts);
end;
uses socket
GetHostByName