用SetVolumeLabel('z:\','abcd')却无法修改映射网络驱动器的卷标?
用什么方法才能修改映射网络驱动器的卷标?

解决方案 »

  1.   

    可以在映射网络驱动器时,指定卷标:
    Function NetDriverAdd:Boolean;
    var
     NR : TNetResource;
    begin
      with NR do
      begin
        dwType := RESOURCETYPE_ANY;
        lpLocalName := pchar('H:');
        lpRemoteName := pchar('\\NTSERVER\files');
        lpProvider := '';
      end;
     if WNetAddConnection2(NR, pchar('FileUser'), pchar('FileUser'),
        CONNECT_UPDATE_PROFILE) = NO_ERROR then Result := True else Result := False;
    end;
      

  2.   

    不行啊,卷标是这个:'\\NTSERVER\files'
    我想自定卷标,如何做?
      

  3.   

    procedure TForm1.Button1Click(Sender : TObject);
    var
      NetSource : TNetResource;
    begin
      with NetSource do
      begin
        dwType := RESOURCETYPE_ANY;
        lpLocalName := ‘X:'; 
        // 将 远 程 资 源 映 射 到 此 驱 动 器
        lpRemoteName := ‘\\hqServer\sys'; 
        // 远 程 网 络 资 源
        lpProvider := ‘';  
        // 必 须 赋 值, 
          如 为 空 则 使 用lpRemoteName 的 值。
      end;
      WnetAddConnection2(NetSource,‘Password',‘Guest',
       // 用 户 名 为Guest, 口 令 为Password
      CONNECT_UPDATE_PROFILE);
       // 下 次 登 录 时 重 新 连 接
      // 此 时 在Windows 资 源 管 理 器 中 
        可 看 到 网 络 驱 动 器X:
      if MessageDlg(‘Are you sure to disconnect Drive ?',
        mtConfirmation, [mbYes, mbNo], 0) = mrYes 
      then      
        // 不 管 是 否 有 文 件 打 开,
          断 开 网 络 驱 动 器X:
     WNetCancelConnection2( ‘X:', CONNECT_UPDATE_
    PROFILE, True);  
    end;
    end;
      

  4.   

    肯定支持,因为按右键菜单是可以改的,只是目录没人知道调用那个API。
      

  5.   

    右键菜单可以改驱动器卷标,笑话,你把C:改成F:试试,Windows本身就不支持修改卷标。至少我是没有听说过。
    楼主也真有意思,既然映射了为什么要改呢,既然要改,为什么当初不映射成你需要的卷标呢。真是想不通。
      

  6.   

    我看明白了,是修改VolumeLabelSetVolumeLabel是可以,只是你的使用方法不正确!不是
    SetVolumeLabel('z:\','abcd')!
    而是
    SetVolumeLabel('\SERVER\SHAREName','abcd')
    就是要给出映射源,而不是目标Z:\
      

  7.   

    再不行就
    ShellAPI调用Shell来做,效果和资源管理器一样的了!
      

  8.   

    hellAPI?怎么用?请给出原代码。