Map Network Drive (API)的疑问?

Graig 2005-12-13 10:49:47
我用Map Network Drive (API)映射网络驱动器,程序的代码返回值成功了,但是就是看不见映射的网络驱动器盘符在我的电脑里显示,这是什么原因啊?
...全文
326 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Graig 2005-12-14
  • 打赏
  • 举报
回复
现在发现,还是和操作系统也有点关系,我现在使用的是xp,怎么弄也不行,但到2003上,网络驱动器能够被映射出来,但界面上还不能显示,不过这也就够了。
在此多谢 “jackymi(完美刺客)”。
Graig 2005-12-13
  • 打赏
  • 举报
回复
跟踪了,映射盘符存在。

你可以参照这篇文章:
http://codebetter.com/blogs/brendan.tompkins/archive/2004/09/24/26730.aspx

真的快急死我了。
jackymi 2005-12-13
  • 打赏
  • 举报
回复
你手工跟踪一下 是不是你设置的映射盘符不存在阿 所以返回的是个空值
jackymi 2005-12-13
  • 打赏
  • 举报
回复
这个好像不是api把....... 这个应该别人封装的dll 你直接调用拉
Graig 2005-12-13
  • 打赏
  • 举报
回复
我调用的代码是:

string maxDriveName = "X:";
NetworkDrive drive = new NetworkDrive();

drive.LocalDrive = maxDriveName;
drive.ShareName = netPath;
drive.Force = true;
drive.Persistent = false;
drive.PromptForCredentials = false;
drive.SaveCredentials = false;
drive.MapDrive(userName,passwd);

Graig 2005-12-13
  • 打赏
  • 举报
回复
// Map network drive
private void zMapDrive(string psUsername, string psPassword){
//create struct data
structNetResource stNetRes = new structNetResource();
stNetRes.iScope=2;
stNetRes.iType=RESOURCETYPE_DISK;
stNetRes.iDisplayType=3;
stNetRes.iUsage=1;
stNetRes.sRemoteName=ls_ShareName;
stNetRes.sLocalName=ls_Drive;
//prepare params
int iFlags=0;
if(lf_SaveCredentials){iFlags+=CONNECT_CMD_SAVECRED;}
if(lf_Persistent){iFlags+=CONNECT_UPDATE_PROFILE;}
if(ls_PromptForCredentials){iFlags+=CONNECT_INTERACTIVE+CONNECT_PROMPT;}
if(psUsername==""){psUsername=null;}
if(psPassword==""){psPassword=null;}
//if force, unmap ready for new connection
if(lf_Force){try{zUnMapDrive(true);}catch{}}
//call and return
int i = WNetAddConnection2A(ref stNetRes, psPassword, psUsername, iFlags);
if(i>0){throw new System.ComponentModel.Win32Exception(i);}
}
jackymi 2005-12-13
  • 打赏
  • 举报
回复
把你的代码贴出来看看
Graig 2005-12-13
  • 打赏
  • 举报
回复
我是使用c# asp.net 做的,Map Network Drive (API) 给的sample确没有问题。
jackymi 2005-12-13
  • 打赏
  • 举报
回复
可以在别人的机器上测试一下 估计是你OS的毛病
jackymi 2005-12-13
  • 打赏
  • 举报
回复
刚刚用vb写啦一个 没什么问题啊
'Api声明
Public Declare Function WNetConnectionDialog Lib "mpr.dll" _
(ByVal hwnd As Long, ByVal dwType As Long) As Long
Public Declare Function WNetDisconnectDialog Lib "mpr.dll" _
(ByVal hwnd As Long, ByVal dwType As Long) As Long

'连接映射的网络驱动器
Private Sub Command1_Click()
Call WNetConnectionDialog(Me.hwnd, 1)
End Sub

'断开
Private Sub Command2_Click()
Call WNetDisconnectDialog(Me.hwnd, 1)
End Sub
Graig 2005-12-13
  • 打赏
  • 举报
回复
Thanks.

我调查发现 只要是web方式就不行。

而sample使用的是Apllication方式做的。

真是的,不知如何解决?
jackymi 2005-12-13
  • 打赏
  • 举报
回复
你说的地址我打不开 可能是我这里网络的问题

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧