[推荐]Delphi实现枚举网络连接
热 荐 ★★★★
Delphi实现枚举网络连接
procedure TForm1.Button1Click(Sender: TObject);
var
i, dwResult: DWORD ;
hEnum: THANDLE ;
lpnrDrv: PNETRESOURCE ;
s: string;
const
cbBuffer:DWORD = 16384;
cEntries: DWORD = $FFFFFFFF;
begin
dwResult := WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
nil,
hEnum );
if (dwResult < > NO_ERROR) then begin
ShowMessage('Cannot enumerate network drives.' );
Exit;
end;
s := '';
repeat
lpnrDrv := PNETRESOURCE (GlobalAlloc( GPTR, cbBuffer ));
dwResult := WNetEnumResource( hEnum, cEntries, lpnrDrv, cbBuffer);
if (dwResult = NO_ERROR) then begin
s := 'Network drives:'#13#10;
for i := 0 to cEntries - 1 do begin
if lpnrDrv^.lpLocalName < > nil then
s := s + lpnrDrv^.lpLocalName + #9 + lpnrDrv^.lpRemoteName;
Inc(lpnrDrv);
end;
end
else
if dwResult < > ERROR_NO_MORE_ITEMS then begin
s := s + 'Cannot complete network drive enumeration';
GlobalFree( HGLOBAL(lpnrDrv));
break;
end;
GlobalFree( HGLOBAL(lpnrDrv) );
until (dwResult = ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
if s = '' then s := 'No network connections.';
ShowMessage(s);
end;
文章录入:cainiaowang 责任编辑:cainiaowang