繁体   English   中英

谁能帮助我使用Windows API NetApi32?

[英]Can anyone help me with the Windows API 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,但似乎找不到等于什么的代码。 如果这是不正确的方法,谁能指出正确的方向呢?

http://msdn.microsoft.com/zh-CN/library/ms681383(VS.85).aspx

ERROR_NETWORK_UNREACHABLE 1231(0x4CF)

无法到达网络位置。

您确定您的NetShareEnum定义有效吗? 我对VB.NET不太熟悉,但是过去我曾在C#中使用过netapi32,并且通常没有问题。

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

HKLM \\ System \\ CurrentControlSet \\ Services \\ LanmanServer \\ Shares

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM