我编写了一个使用 WNet 函数列出 Windows 网络共享对象的程序。我注意到,出于某种原因,WNetEnumResource 函数只检索我的本地共享,尽管资源管理器看到更多的对象。是什么原因造成的?这是代码:
dwResult = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,
RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER, lpnr, &hEnum);
................
dwResultEnum = WNetEnumResource(hEnum, &cEntries, lpnrLocal, &cbBuffer);
这就是我得到的:
Microsoft Terminal Services network
Microsoft Windows Network network
WORKGROUP domain
\\MOSKKM server
\\MOSKKM\HP LaserJet 3055 PCL5 share
\\MOSKKM\share share
\\MOSKKM\soft share
\\MOSKKM\tunnel share
Web Client Network network
我的系统是 Win7,我使用管理员帐户,没有运行防病毒软件或防火墙。并且在同一台机器上托管的桥接 VirtualBox VM 上也可以正常工作(但是,很长一段时间)。可能有什么问题?也许还有其他方法可以解决这个问题,而不是使用 WNet 函数?
还有: WNetEnumResource 放弃按字母排序的共享对象。我无法想象任何方法如何并行化这个过程。有任何想法吗?