1

特定のマシンの共有のリストを取得しようとしています。そこで、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 が返されましたが、それが何に相当するのかわかりません。間違った方法でこれを行う方法について、誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

5

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

ERROR_NETWORK_UNREACHABLE 1231 (0x4CF)

ネットワークの場所に到達できません。

于 2009-07-02T20:17:11.260 に答える
0

NetShareEnum 定義が有効であると確信していますか? 私は VB.NET にあまり詳しくありませんが、過去に c# で netapi32 を使用したことがありますが、一般的に問題はありません。

とにかく、コンピューター上のすべての共有を列挙したい場合は、別の方法で行うことができます。次のレジストリ キーで、現在のすべてのコンピューター共有を見つけることができます。

HKLM\System\CurrentControlSet\Services\LanmanServer\Shares

共有ごとに 1 つのキーと値のペアがあります。値は REG_MULTI_SZ 型で、単純な ini のように見えます。「type=0」(ファイル共有) を確認し、パスを読み取ります。

于 2009-07-02T22:18:29.690 に答える