你的用法有问题。因该如下:(BCB)
如果你将机器名为PC1所共享的目录D(表述为\\PC1\D)映射位你的本当地硬盘I:
此时Loc=I:函数返回RemoteName=\\PC1\D.Len为RemoteName的长度。
char Loc[255];
strcpy(Loc,Edit1->Text.c_str());
char RemoteName[255];
DWORD Len;
WNetGetConnection(Loc,RemoteName,&Len);
ShowMessage(RemoteName);

解决方案 »

  1.   

    正好我写过,给你了。
    s1保留最后结果。
    function TForm1.GetNetworkDriveMappings(s1:tstrings):integer;
    var
            i:integer;
            sNetPath:string;
            sLocalName:string;
            s1Current:string;
            dwMaxNetPathLen:DWord;
            GetReturn:DWORD;
    begin
            s1.Clear;
            dwMaxNetPathLen:=MAX_PATH;
            SetLength(sNetPath,dwMaxNetPathLen);
            for i:=3 to 25 do
            begin
                    sLocalName:=''+Chr(65+i)+':';
                    GetReturn:=Windows.WNetGetConnection(PChar(sLocalName),PChar(sNetPath),dwMaxNetPathLen);
                    if (GetReturn=NO_ERROR) then
                    begin
                            s1Current:=inttostr(i)+'--'+chr(65+i)+':'+sNetPath;
                            s1.add(s1Current);
                            //sNetPath:='';
                    end;
                    GetReturn:=0;        end;
            Result:=s1.Count;
    end;