我想在程序中登陆另一台Win2K或WinXP电脑的E盘,如下,好像登陆不成功,这是为什么呀?:
var
 NetSource : TNetResource;
begin
  with NetSource do
  begin
    dwType := RESOURCETYPE_ANY;
    lpLocalName := nil;
    lpRemoteName := '\\192.168.1.23\e$';  // 远程网络资源
    lpProvider := nil;                    // 必须赋值,如为空则使用lpRemoteName的值。
  end;
  WnetAddConnection2(NetSource, 'XXXXXXX', 'Administrator',CONNECT_UPDATE_PROFILE);

解决方案 »

  1.   

    zt:建立网络驱动器----在Windows 环 境 下, 应 用 程 序 使 用Windows 网 络 函 数(WNet) 来 实 现 网 络 功 能
     而 不 用 关 心 网 络 的 供 应 商 及 具 体 实 现, 因 为WNet 函 数 是 独 立 于 网 络 的。 
    ----Wnet 函 数 主 要 有:WnetAddConnection , WnetAddConnection2 , WnetAddConnection3 , 
    WnetCancelConnection2 等。 本 文 主 要 用 WnetAddConnection2,WnetCancelConnection2 函 数。 ----WNetAddConnection2 在Windows.pas 中 的 函 数 原 型 如 下: ----function WNetAddConnection2(var lpNetResource: TNetResource;lpPassword, lpUserName: ----PChar; dwFlags: DWORD): DWORD; stdcall; ----为 调 用 此 函 数, 必 须 填 写lpNetResouce 结 构, 此 结 构 的 定 义 为: typedef  struct _NETRESOUCE{
        DWORD dwScope;  
        DWORD dwType;  
        DWORD dwDisplayType;
        DWORD dwUsage;
        LPTSTR lpLocalName;
        LPTSR  lpRemoteName;
        LPTSr  lpProvider;
    } NETRESOURCE; ----这 里 使 用dwType,lpLocalName,lpRemoteName,lpProvider 几 个 参 数。 其 含 义 如 下: ----dwType : 用 于 指 定 网 络 的 资 源 类 型, 有 以 下RESOURCETYPE_ANY( 任 何 资 源),
    RESOURCETYPE_DISK( 磁 盘 资 源) , RESOURCETYPE_PRINT( 打 印 机 资 源)。 ----lpLocalName : 指 定 本 地 设 备。 ----lpRemoteName : 指 定 远 程 网 络 名。 ----lpProvider : 指 定 提 供 网 络 资 源 的 供 应 商。 如 为 空, 则 表 示 供 应 商 未 知。 ----WNetAddConnection2 函 数 的lpPassword 为 远 程 资 源 的 口 令。 ----lpUserName 为 远 程 资 源 的 用 户 名。dwFlags 标 志 位 用 于 指 定 登 录 时 是 否 
    重 新 连 接(0 时 表 示 不 重 新 连 接,CCONNECT_UPDATE_PROFILE 表 示 登 录 时 重 新 连 接)。 ----WnetCancelConnection2 在Windows .pas 中 的 函 数 原 型 如 下: ----function WNetCancelConnection2(lpName: PChar;    dwFlags: DWORD; fForce: BOOL):DWORD; stdcall; ----lpName : 要 断 开 的 远 程 网 络 资 源 或 本 地 重 定 向 驱 动 器。 ----dwFlags : 含 义 同 上。 ----fForce : True 表 示 不 管 是 否 有 文 件 打 开, 强 制 性 断 开 网 络 驱 动 器;
    False 表 示 如 有 文 件 打 开 则 函 数 运 行 失 败。 实 例----在Delphi 的File 菜 单 下 选 择New Application, 在Form1 上 放 置 一 个Button, 
    在Button1 的Click 事 件 中 键 入 如 下 代 码: 
    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;