I ported the C# example over to blitzmax, but i dont get any machines listed. Maybe youl have better luck?
SuperStrict Private Type _SERVER_INFO_100 Field sv100_platform_id:Int Field sv100_name:Byte Ptr EndType Global DLL:Int = 0 InitNetApi() OnEnd( FreeNetApi) Global NetServerEnum_:Int( name:Byte Ptr, level:Int, buf:Byte Ptr Var, maxlen:Int, entriesread:Int Var, totalentries:Int Var, servertype:Int, domain:Byte Ptr, resumehandle:Int Var) Extern "Win32" Function FreeLibrary:Int( handle:Int) EndExtern Public Const SV_TYPE_WORKSTATION:Int = 1 Const SV_TYPE_SERVER:Int = 2 Const NERR_SUCCESS:Int = 0 Global NetApiBufferFree:Int( buf:Byte Ptr) Function InitNetApi() If Not DLL Then DLL = LoadLibraryA( "NetApi32.dll") If Not DLL Then RuntimeError( "Unable to load NetApi32.dll") NetServerEnum_ = GetProcAddress( DLL, "NetServerEnum") If Not NetServerEnum_ Then RuntimeError( "Error getting function NetServerEnum") NetApiBufferFree = GetProcAddress( DLL, "NetApiBufferFree") If Not NetApiBufferFree Then RuntimeError( "Error getting function NetApiBufferFree") EndIf EndFunction Function FreeNetApi() If DLL Then FreeLibrary( DLL) DLL = 0 EndFunction Function NetServerEnum:Int( name_:String, level:Int, buf:Byte Ptr Var, maxlen:Int, entriesread:Int Var, totalentries:Int Var, servertype:Int, domain_:String, resumehandle:Int Var) Local name:Byte Ptr, domain:Byte Ptr If name_ Then name = name_.ToCString() If domain_ Then domain = domain_.ToCString() Local res:Int = NetServerEnum_( name, level, buf, maxlen, entriesread, totalentries, servertype, domain, resumehandle) If name Then MemFree name If domain Then MemFree domain Return res EndFunction Function GetNetworkComputers:String[]() Const MAX_PREFERRED_LENGTH:Int = -1 Local buf:Byte Ptr, handle:Int, entries:Int, total:Int If NetServerEnum( Null, 100, buf, MAX_PREFERRED_LENGTH, entries, total, SV_TYPE_WORKSTATION | SV_TYPE_SERVER, Null, handle) = NERR_SUCCESS Then Local list:String[] If total > 0 Then list = New String[total] For Local i:Int = 0 Until total Local tmp:Byte Ptr = buf + (i * SizeOf(_SERVER_INFO_100)) list[i] = String.FromWString( Short Ptr Int Ptr(tmp)[1]) Next EndIf NetApiBufferFree( buf) Return list EndIf NetApiBufferFree( buf) Return Null EndFunction ' ' TEST ' Print "listing:" For Local s:String = EachIn GetNetworkComputers() Print ":" + s Next