我正在尝试获取特定计算机上的共享列表。所以我决定使用Windows API NetApi32.dll。下面是我的代码片段:
Dim svr As String = Environment.MachineName
Dim level As Integer = 2
Dim sharesRead As Integer, totalEntries As Integer, nRet As Integer, hResume As Integer = 0
Dim pBuffer As IntPtr = IntPtr.Zero
nRet = NetApi32.NetShareEnum(svr, level, pBuffer, -1, sharesRead, totalEntries, hResume)我得到的返回码是1231,但似乎找不到它等同于什么。如果这是一种不正确的方法,谁能给我指出正确的方向?
发布于 2009-07-02 20:17:11
http://msdn.microsoft.com/en-us/library/ms681383(VS.85).aspx
ERROR_NETWORK_UNREACHABLE 1231 (0x4CF)
无法访问网络位置。
发布于 2009-07-02 22:18:30
您确定您的NetShareEnum定义有效吗?我对VB.NET不是很熟悉,但我过去在c#中使用过netapi32,通常没有问题。
但不管怎样,如果您想枚举计算机上的所有共享,您可以使用另一种方法。在以下注册表项中,您可以找到所有当前的计算机共享:
HKLM\System\CurrentControlSet\Services\LanmanServer\Shares
每个共享有一个键值对。值是REG_MULTI_SZ类型,看起来像是简单的ini。检查"type=0“(文件共享),并读取路径。
https://stackoverflow.com/questions/1076462
复制相似问题