回 帖 发 新 帖 刷新版面

主题:用 filecopy 语句从网络上共享文件夹向本机拷文件,如何用代码进行登录呢?

用 filecopy 语句从网络上共享文件夹向本机拷文件,如何用代码进行登录呢? 
------------------------------- 
假如一台网络上的电脑的ip为 192.168.1.20,上面有一个共享文件夹,名称为:电子公告栏,即地址为: 
\\192.168.1.20\电子公告栏 

现在在网络内的一台客户机上运行我用vb编写的程序,这个程序用 filecopy 语句从 
\\192.168.1.20\电子公告栏 
向本机某个文件夹内复制文件. 

我发现经常复制失败,提示文件不存在,原因是无法访问 
\\192.168.1.20\电子公告栏\ 
这个文件夹,为了复制成功,我必须首先在网上邻居的地址栏中,输入 

\\192.168.1.20\电子公告栏\ 
然后回车,此时会出现登录窗口,我输入用户名和密码后,便可以显示共享文件夹中的文件了, 
然后在回到我的vb程序中,执行 filecopy 就会成功了. 

所以我明白了,在执行 filecopy 前,必须先与共享文件夹建立连接才行呀, 
所以我的vb程序一启动时,我就是代码中,建立与共享文件夹的连接: 
就是下面的代码: 

strCmd = "net use \\192.168.1.20\电子公告栏 """" /user:worker" 
Shell strCmd, vbHide 

但是我发现这样做并没有用.执行 filecopy 时,依然是失败的.每次我都是先在网上邻居中登录一次共享文件夹,才能正常的复制. 

所以我想问,如何在代码中实现登录的功能呢?目的是正常完成 filecopy 语句的执行. 

回复列表 (共3个回复)

沙发

没做过,但如果你这样做应该可以:
1.调用net时改成影射为本地盘
2.因为shell没有等待功能,net还没执行完就会继续执行shell后面的语句,需要等待net use完成后再copy

板凳

楼上,不是这个问题的.
绝不是时间的问题.
而是net use \\共享文件夹
这个对 filecopy 是没有用的.

关键是如何实现共享文件夹的访问权限.

3 楼

[quote]楼上,不是这个问题的.
绝不是时间的问题.
而是net use \\共享文件夹
这个对 filecopy 是没有用的.

关键是如何实现共享文件夹的访问权限.[/quote]

在保证可以连接的情况下.有两种方法.
1.使用任意账户连接.连接的时候勾选下面的记住密码.这样下次再访问这个电脑就不用再输入密码了.
2.开启GUEST账户.在已经共享的电脑上开启GUEST账户后.让下线的机器都使用这个默认连接.(有的机器不是开了GUEST就自动默认使用来宾账户连接的.还得设置.)

我来回复

您尚未登录,请登录后再回复。点此登录或注册