关于映射网络驱动器(50分)

  • 主题发起人 主题发起人 netke
  • 开始时间 开始时间
N

netke

Unregistered / Unconfirmed
GUEST, unregistred user!
在一程序有需要映射网络驱动器,程序,编译通过,权限也没问题,试过两台98机子和两台2000机子,只有一台
98机子可以用(但只能映射到//Server/Dir1)其他机子都是失败,请各位帮忙,
NetI: TNetResource;
with NetI do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName := 'G:';
lpRemoteName := '//Server/Dir1/Dir2';
lpProvider := '';
end;
if WNetAddConnection2(NetI,'password','username',CONNECT_UPDATE_PROFILE)=NO_ERROR then
ShowMessage('映射成功')
else
ShowMessage('映射失败');
 
你没试试 net use g: //SERVER/DIR1/DIR2 可不可以?
 
用net use g: //SERVER/DIR1/DIR2 正常,可以映射
 
那你检查一下WNetAddConnection2的返回值把
 
67
ERROR_BAD_NET_NAME
但我确定这个路径没错
 
一般情况下 98 不能访问2000的资源,但是如果在98下登陆的账号和密码 在2000中
有授权的话,就可以访问2000的资源。
反之98对2000好像没有限制。
尝试一下在2000中添加你在98中使用的账号和密码,并将你要访问的资源的访问权限
赋给这些用户即可。
 
我是在一个NT网内,所有用户都是授权用户
 
>建立映射网络驱动器
procedure TForm1.Button1Click(Sender: Tobject);

var NetR :NETRESOURCE;ErrInfo : Longint;

begin

NetR.dwScope := RESOURCE_GLOBALNET;

NetR.dwType := RESOURCETYPE_DISK;

NetR.dwDisplayType := RESOURCEDISPLAYTYPE_SHARE;

NetR.dwUsage := RESOURCEUSAGE_CONNECTABLE;

NetR.lpLocalName := 'j:';

NetR.lpRemoteName := '//Lifang/c';

ErrInfo := WNetAddConnection2(NetR, '', '', CONNECT_UPDATE_PROFILE);

If ErrInfo = NO_ERROR Then

messagebox(0,'Net connection successful!','',0)

Else

messagebox(0,'ERROR: ','',0);

end;

>断开映射网络驱动器
procedure TForm1.Button2Click(Sender: Tobject);

var ErrInfo : Longint;

strLocalName : pchar;

begin

strLocalName:='j:';

ErrInfo := WNetCancelConnection2(strLocalName, CONNECT_UPDATE_PROFILE, False);

If ErrInfo = NO_ERROR Then

messagebox(0,'Net disconnection successful!','',0)

Else

messagebox(0,'ERROR','',0);

end;
 
还是不行,ErrorCode:67
 
映射网络驱动器的函数原型:
function WNetAddConnection2W(var lpNetResource: TNetResourceW;lpPassword, lpUserName: PWideChar; dwFlags: DWORD): DWORD; stdcall;

例子如下:
var
NRW: TNetResource;
begin
with NRW do begin dwType := RESOURCETYPE_ANY;
lpLocalName := 'Y:';
lpRemoteName := '//MyServer/MyDirectory';
lpProvider := '';
end;
WNetAddConnection2(NRW, 'MyPassword', 'MyUserName', CONNECT_UPDATE_PROFILE);
end;

 
to netke, 我也曾遇到过跟你一样的问题,不过我是在 NT 下,我提供我的一个变通的
解决办法,希望能对你有点启发
我经过反复的测试,发现只要用被映射机器的超级用户的用户名和密码登陆连接,就总是
出现错误 ERROR_BAD_NET_NAME ,但当改用一般用户登陆连接时就再也没有出现过这个问题
 
我记得只能映射到共享目录那一级,而不能映射到共享目录下的目录
 
QuickSilver,你记错了吧,可以映射到共享目录下的目录的
 
多人接受答案了。
 
请问功能实现了吗?我想将FTP和HTTP服务器映射到本地硬盘,能实现吗?请email联系:michael_lugq@yahoo.com
谢谢
 
后退
顶部