WNetAddConnection2建立共享目录后,如何中断该共享连接?
快乐鹦鹉 2005-10-27 11:51:53 给大家讲一下现象吧。
NETRESOURCE指定参数为:dwType=RESOURCETYPE_DISK,lpLocalName=NULL,lpremotename="\\\\192.168.102.229\\aiscmd",lpProvider=NULL
调用方式为:
dwResult = WNetAddConnection2(&nr,sLoginPass,sLoginUser,CONNECT_UPDATE_PROFILE);
以此方式建立连接没有问题。
但是,当该应用程序再次运行时,我用其他用户连接该共享目录,结果,dwResult=1219。请问大家,这1219代表什么意思?我估计是该共享目录已经有连接了。此时,即使我给出的用户密码错误,也返回1219。那么,我想,如果在连接前,先取消连接,或者在每次运行后中断连接的话,应该是解决这个问题的办法。因此尝试使用WNetCancelConnection2函数取消这个连接。但是,我使用如下方式:
WNetCancelConnection2("\\\\192.168.102.229\\aiscmd",0,TRUE);却不能断开,而且返回值是2250,就是说没有该连接!第二个参数用CONNECT_UPDATE_PROFILE也没有用。再次运行程序依然返回1219。
以上是实际现象。很想请问大家,该如何解决呢?
其实还有一个现象,程序第一次连接时,假设用A用户,A用户设置为Administrator组权限。没有问题。可以删除共享目录中的文件。第二次运行前,我将A用户转移到user组(去除了Administrator组权限),程序运行后,居然还可以删除共享目录中的文件!然后,我重新启动机器(访问共享目录的机器),再次以A用户(user权限)访问共享目录,则不能删除目录下的文件了,提示无权限。这才是正确的现象。由此看来,建立共享目录连接后,系统应该记录了一些信息。那么,该如何才能删除这些信息呢?使得下次访问共享目录时,能够是完全的重新再来?
希望熟悉网络和了解WNet系列API的朋友能够帮我解惑。
万分感谢!