Может кто-нибудь помочь мне с 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, но, похоже, не могу найти, что это значит. Кто-нибудь может указать мне правильное направление о том, как это сделать, если это неправильный путь?
2 ответа
http://msdn.microsoft.com/en-us/library/ms681383(VS.85).aspx
ERROR_NETWORK_UNREACHABLE 1231 (0x4CF)
Сетевое местоположение не может быть достигнуто.
Вы уверены, что ваше определение NetShareEnum действительно? Я не очень знаком с VB.NET, но я работал с netapi32 в C# в прошлом и вообще без проблем.
Но в любом случае, если вы хотите перечислить все общие ресурсы на вашем компьютере, вы можете сделать это по-другому. В следующем разделе реестра вы можете найти все текущие общие папки компьютера:
HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Акции
Существует одна пара ключ-значение на акцию. Значение типа REG_MULTI_SZ, которое выглядит как простой ini. Проверьте наличие "type=0" (общий доступ к файлам) и прочитайте путь.