任何人都可以帮我使用Windows API NetApi32吗?

时间:2009-07-02 20:12:44

标签: .net winapi netapi32

我正在尝试获取特定计算机上的共享列表。所以我决定使用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的返回代码,但似乎找不到相同的东西。如果不正确的方式,有人能指出我如何做到这一点的正确方向吗?

2 个答案:

答案 0 :(得分:5)

http://msdn.microsoft.com/en-us/library/ms681383(VS.85).aspx

ERROR_NETWORK_UNREACHABLE 1231(0x4CF)

无法访问网络位置。

答案 1 :(得分:0)

您确定NetShareEnum定义有效吗?我对VB.NET并不熟悉,但过去我曾在c#中使用过netapi32,一般都没有问题。

但无论如何,如果你想枚举计算机上的所有共享,你可以采用另一种方式。 在以下注册表项中,您可以找到所有当前的计算机共享:

  

HKLM \系统\ CurrentControlSet \服务\ LanmanServer \股份

每股有一个键值对。值为REG_MULTI_SZ类型,看起来像简单的ini。检查“type = 0”(文件共享)和读取路径。

相关问题