先把\\ccx\lectureke映射为自己的一个盘(映射时输入密码/用户名),再访问

解决方案 »

  1.   

    下面这个单元也许对你有用(我这台电脑上没有Delphi,等回去我再帮你想想)
    unit sharing;
    { Sharing 98 v2.0 freeware}
    {在Windows95/97/98中有一个svrapi.dll动态库,基本上所有的设定网络资源共享
    的函数都存在于此,我们只要调用这里的函数就能完成我们希望的功能。
    但是要注意的是这个动态库仅仅在Windows95/97/98中有效,在NT下为了保证其安
    全性,是通过更复杂的函数调用完成这些操作的,所以这里的方法不适于NT环境}
    interfaceuses Sysutils{,ShareErr} {其中包含一些意外错误的代码和其他的小功能};Type
        Share_Info50 = Packed Record
                                shi50_netname : Array[0..12] of Char; {13}
                                shi50_type : Byte;
                                shi50_flags : Word;
                                shi50_re : PChar;
                                shi50_path : PChar;
                                shi50_rw_password : Array[0..8] of Char; {9}
                                shi50_ro_password : Array[0..8] of Char;
                               End;
    Const
        NERR_Success = 0; { Success – 没有发生错误 }
        NERR_BASE = 2100;    {资源类型常量}
        STYPE_DISKTREE = 0; {共享目录}
        STYPE_PRINTQ = 1; {共享打印机}    {属性标记常量}
         SHI50F_RDONLY = 1; { 只读共享}
         SHI50F_FULL = 2; { 开放所有权限的共享}
         SHI50F_DEPENDSON = (SHI50F_RDONLY or SHI50F_FULL); {根据用户口令访问}    {下面两者的关系是OR, 例如: flags := (SHI50F_RDONLY OR SHI50F_SYSTEM)}
        SHI50F_PERSIST = 256; {系统启动时建立}
        SHI50F_SYSTEM = 512; {共享不可见}
       { 参数:
        ShareResource() 在指定机器上共享指定资源.
        ServerName= 需要共享资源的机器的名字,如果是 Nil 则表示本机
        FilePath = 需要共享的资源的目录. (字母都应大写);
        NetName = 共享资源的网络名称(别名),最长12个字母
        Re = 备注,可以为空
        ShareType = 资源类别,参见常量设定.
        Flags = 共享标记,参见常量设定.
        RWPass = 读/写权限的口令,可以为空
        ROPass = 只读权限的口令,可以为空
        例如: ShareResource(Nil, 'C:\TEMP', 'TESTING', 'My Comment', STYPE_DISKTREE,
           SHI50F_RDONLY, '','MYPASS');
        这里需要将本机的 C:\TEMP共享为'TESTING',备注是 'My Comment'。
        访问权限是只读(Read Only), 只读权限口令是 'MYPASS'. 没有全权访问口令
        function ShareResource(ServerName : PChar; FilePath : PChar;NetName:PChar;
           Re : PChar;ShareType:Byte; Flags:Word;RWPass:PChar;ROPass:PChar):Integer;}
      { DeleteShare() 在指定机器上删除指定的已经共享的资源.
      参数:
       ServerName=需要共享资源的机器的名字,如果是 Nil 则表示本机.
       NetName =共享资源的网络名称(别名),最长12个字母
      例如: DeleteShare(Nil, 'TESTING'); 这个操作将本机上的名为'TESTING'的共享资源取消共享
      function DeleteShare(ServerName : PChar; NetName : PChar) : Integer;}{ GetShareInfo() 取得指定机器上指定的共享资源的信息
      参数:
       ServerName =共享资源存在的机器的名字,如果是 Nil 则表示本机;
       NetName =共享资源的网络名称(别名),最长12个字母;
       ShareStruct = Share_Info50.共享资源的信息将添入到此结构中去;   例如:
       var MyShareStruct : Share_Info50;
       GetShareInfo(Nil, 'TESTING', MyShareStruct);
       这个操作将本机上的名为'TESTING'的共享资源的信息填入 MyShareStruct结构中去
       function GetShareInfo(ServerName:PChar;NetName:PChar;Var ShareStruct:Share_Info50):Integer;} { SetShareInfo: 设置指定机器上指定的共享资源的信息.
       参数:
       ServerName =共享资源存在的机器的名字,如果是 Nil 则表示本机;
       NetName =共享资源的网络名称(别名),最长12个字母;
       ShareStruct =需要设置的共享资源信息;
       例如: SetShareInfo(Nil, 'TESTING', MyShareStruct);
       此操作将MyShareStruct描述的共享信息写入到共享资源'TESTING'中
    function SetShareInfo(ServerName:PChar;NetName:PChar;ShareStruct:Share_Info50):Integer;                                            }{以下部分来自 SVRAPI.h 希望了解详细情况的读者请参考win32.hlp}
    function NetShareAdd(ServerName:PChar;ShareLevel:SmallInt;Buffer:Pointer; Size:Word):Integer; StdCall;
    function NetShareDel(ServerName:PChar;NetName:PChar;Reserved:Word):Integer; StdCall;
    function NetShareGetInfo(ServerName:PChar;NetName:PChar;ShareLevel:SmallInt;Buffer:Pointer; Size : Word; Var Used : Word) : Integer; StdCall;
    function NetShareSetInfo(ServerName: PChar; NetName : PChar; ShareLevel : SmallInt; Buffer : Pointer; Size : Word; Reserved : SmallInt) : Integer; StdCall;//*********************************************************************************************
    {这些函数是可以自己用的:
     function ShareResource(ServerName : PChar; FilePath : PChar;NetName : PChar; Re : PChar;ShareType : Byte; Flags : Word;RWPass : PChar; ROPass : PChar ) : Integer;
     function DeleteShare(ServerName : PChar; NetName : PChar) : Integer;
     function GetShareInfo(ServerName : PChar; NetName : PChar; Var ShareStruct : Share_Info50) : Integer;
     function SetShareInfo(ServerName : PChar; NetName : PChar; ShareStruct: Share_Info50) : Integer;}
     function ShareResource(ServerName : PChar; FilePath : PChar;NetName : PChar; Re : PChar;ShareType : Byte; Flags : Word;RWPass : PChar; ROPass : PChar ) : Integer;
     function DeleteShare(ServerName : PChar; NetName : PChar) : Integer;
     function GetShareInfo(ServerName : PChar; NetName : PChar; Var ShareStruct : Share_Info50) : Integer;
     function SetShareInfo(ServerName : PChar; NetName : PChar; ShareStruct: Share_Info50) : Integer;
    //***********************************************************************************************
    implementationfunction ShareResource(ServerName : PChar; FilePath : PChar;NetName : PChar; Re : PChar;
    ShareType : Byte; Flags : Word;RWPass : PChar; ROPass : PChar ) : Integer;
    var MyShare : Share_Info50;
    PMyShare : ^Share_Info50;
    begin
    strLcopy(MyShare.shi50_netname,NetName,13);
    MyShare.shi50_type := ShareType;
    MyShare.shi50_flags := Flags;
    MyShare.shi50_re := Re;
    MyShare.shi50_path := FilePath;
    strLcopy(MyShare.shi50_rw_password,RWPass,9);
    strLcopy(MyShare.shi50_ro_password,ROPass,9);
    PMyShare := @MyShare;
    Result := NetShareAdd(ServerName,50,PMyShare,SizeOf(MyShare));
    end;function DeleteShare(ServerName : PChar; NetName : PChar) : Integer;
    begin
    Result := NetShareDel(ServerName,NetName,0);
    end;
    function GetShareInfo(ServerName : PChar; NetName : PChar; Var ShareStruct : Share_Info50) : Integer;
    var PMyShare : ^Share_Info50;
    AmountUsed : Word;
    Error : Integer;
    begin
    PMyShare := AllocMem(255);
    Error := NetShareGetInfo(ServerName,NetName,50,PMyShare,255,AmountUsed);
    If Error = 0 Then
    Begin
    ShareStruct.shi50_netname := PMyShare.shi50_netname;
    ShareStruct.shi50_type := PMyShare.shi50_type;
    ShareStruct.shi50_flags := PMyShare.shi50_flags;
    ShareStruct.shi50_re := PMyShare.shi50_re;
    ShareStruct.shi50_path := PMyShare.shi50_path;
    ShareStruct.shi50_rw_password := PMyShare.shi50_rw_password;
    ShareStruct.shi50_ro_password := PMyShare.shi50_ro_password;
    End;
    FreeMem(PMyShare);
    Result := Error;
    end;function SetShareInfo(ServerName : PChar; NetName : PChar; ShareStruct: Share_Info50) : Integer;
    var PMyShare : ^Share_Info50;
    begin
    PMyShare := @ShareStruct;
    Result := NetShareSetInfo(ServerName,NetName,50,PMyShare,SizeOf(ShareStruct),0);
    end;function NetShareAdd; external 'SVRAPI.DLL';
    function NetShareDel; external 'SVRAPI.DLL';
    function NetShareGetInfo; external 'SVRAPI.DLL';
    function NetShareSetInfo; external 'SVRAPI.DLL';end.
      

  2.   

    pdsinfo,你好!我大概下周回公司去试一试,如果可以,我把分加给你!(我想即使不可用,我
    也会加一些分给你的!)
      

  3.   

    这样映射网络盘,不用手工输入密码的!
    procedure TForm1.Button1Click(Sender : TObject);
    var  NetSource : TNetResource;
    begin
     with NetSource do
     begin
      dwType := RESOURCETYPE_DISK;
      lpLocalName :=pchar('X:');  // 将远程资源映射到此驱动器
      lpRemoteName :=pchar('\\ccx\lectureke');  // 远程网络资源
      lpProvider := '';  // 必须赋值,如为空则使用lpRemoteName的值。
     end;
    if WnetAddConnection2(NetSource, 'Password', 'UserName', CONNECT_UPDATE_PROFILE)=NO_ERROR
     //用户名为Guest,口令为Password,下次登录时重新连接,此时在Windows资源管理器中可看到网络驱动器:
     then  showmessage('成功映射!') else showmessage('映射失败!');
    end;