Newsgroup: it.comp.reti.locali
Titolo: RISORSE DI RETE con Visual Basic

Qualcuno conosce il modo per ottenere l'elenco dei PC collegati ad una rete
usando Visual Basic?
Come quando si fa click su Risorse di rete! come si fa ad ottenere l'elenco
dei computer?
Grazie anticipatamente.
--
#################################################
G2 di Ghioldi G. & C. snc - Italy
G2 Email: 
onew...@tin.it
Responsabile settore informatico:
Office: 
alessandr...@bigfoot.com
Home: 
shark...@writeme.com
ICQ: 7349455
Http://www.amicoweb.net/
       (sezione esperti software)
#################################################

Ti dò una soluzione:
aggancia il comando dos/w95 "net view", magari fai un output su file,
otterrai la lista dei Pc condivisi.
;-)
fabriz...@rocketmail.com

oPotresti usare la API WNetEnumResources..
Alessandro Ghioldi (
onew...@tin.it
) wrote:
: Qualcuno conosce il modo per ottenere l'elenco dei PC collegati ad una rete


--
------------------------------------------
Eugenio Schinina'
ISR Network Supervisor
mailto:
skin...@geocities.com
 
http://www.geocities.com/Colosseum/Loge/3211/
Please visit It Service 
http://www.geocities.com/Eureka/Plaza/6881/


Ottima idea, "appendo" un esempietto ..........
inizio ===============================================================
DOCUMENT:Q177697  05-DEC-1997  [vbwin]
TITLE   :HOWTO: List Local Network Connections with WNetEnumResources
PRODUCT :Microsoft Visual Basic for Windows
PROD/VER:WINDOWS:4.0,5.0,95; WINNT:3.51,4.0
OPER/SYS:WINDOWS winnt
KEYWORDS:VB4WIN vb5all vb5howto
---------------------------------------------------------------------
The information in this article applies to:
 - Microsoft Visual Basic Professional and Enterprise Editions for
   Windows, versions 4.0, 5.0
 - Microsoft Windows NT versions 3.51, 4.0
 - Microsoft Windows 95
 - Microsoft Win32 Software Development Kit (SDK)
---------------------------------------------------------------------
SUMMARY
=======
WNetOpenEnum and WNetEnumResources can be used to list the local drives,
printer ports that have been redirected, and any UNC connections on a
machine running Windows NT or Windows 95.
The code below demonstrates how to do this from Visual Basic by first
calling WNetOpenEnum with the dwType parameter set to RESOURCETYPE_ANY. A
valid handle returned via the last parameter is passed to
WNetEnumResources. This function fills a temporary buffer with an array of
NETRESOURCE structures, which includes information about the local network
connections.
Note that this functionality will not list the resources that are
redirected on a remote machine. No such functionality exists in either
operating system.
MORE INFORMATION
================
The sample includes one form and one module. Follow the steps below to
create it.
1. Create a new project and add the following code to the form:
   Option Explicit
   Private Const GMEM_FIXED = &H0
   Private Const GMEM_ZEROINIT = &H40
   Private Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)
   Private Declare Function GlobalAlloc Lib "KERNEL32" ( _
      ByVal wFlags As Long, ByVal dwBytes As Long) As Long
   Private Declare Function GlobalFree Lib "KERNEL32" ( _
      ByVal hMem As Long) As Long
   Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" ( _
      hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
   Private Declare Function CopyPointer2String Lib "KERNEL32" _
      Alias "lstrcpyA" ( _
      ByVal NewString As String, ByVal OldString As Long) As Long
   Private Sub Form_click()
      Dim hEnum As Long, lpBuff As Long, nr As NETRESOURCE
      Dim cbBuff As Long, cCount As Long
      Dim p As Long, res As Long, i As Long
      'Setup the NETRESOURCE input structure
      nr.dwUsage = RESOURCEUSAGE_CONTAINER
      nr.lpRemoteName = 0
      cbBuff = 1000
      cCount = &HFFFFFFFF
      'Open a Net enumeration operation handle: hEnum
      res = WNetOpenEnum(RESOURCE_CONNECTED, RESOURCETYPE_ANY, _
                         0, nr, hEnum)
      If res = 0 Then
         'Create a buffer large enough for the results.
         '1000 bytes should be sufficient
         lpBuff = GlobalAlloc(GPTR, cbBuff)
         'Call the enumeration function
         res = WNetEnumResource(hEnum, cCount, lpBuff, cbBuff)
         If res = 0 Then
            p = lpBuff
            Cls
            'WNetEnumResource fills the buffer with an array of NETRESOURCE
            'structures. Walk through the list and print each local and
            'remote name
            For i = 1 To cCount
               CopyMemory nr, ByVal p, LenB(nr)
               p = p + LenB(nr)
               Print PointerToString(nr.lpLocalName), _
                     PointerToString(nr.lpRemoteName)
            Next i
         Else
            MsgBox "Error: " & Err.LastDllError, vbOKOnly, _
                   "WNetEnumResources"
         End If
         If lpBuff <> 0 Then GlobalFree (lpBuff)
         WNetCloseEnum (hEnum) 'Close the enumeration
      Else
         MsgBox "Error: " & Err.LastDllError, vbOKOnly, "WNetOpenEnum"
      End If
   End Sub
   Private Function PointerToString(p As Long) As String
      'The values returned in the NETRESOURCE structures are pointers to
      'ANSI strings so they need to be converted to Visual Basic Strings
      Dim s As String
      s = String(255, Chr$(0))
      CopyPointer2String s, p
      PointerToString = Left(s, InStr(s, Chr$(0)) - 1)
   End Function
2. Add a new module to the project and add the following code:
   Option Explicit
   Public Type NETRESOURCE
           dwScope As Long
           dwType As Long
           dwDisplayType As Long
           dwUsage As Long
           lpLocalName As Long
           lpRemoteName As Long
           lpComment As Long
           lpProvider As Long
   End Type
   Public Declare Function WNetOpenEnum Lib "mpr.dll" Alias _
       "WNetOpenEnumA" ( _
       ByVal dwScope As Long, _
       ByVal dwType As Long, _
       ByVal dwUsage As Long, _
       lpNetResource As Any, _
       lphEnum As Long) As Long
   Public Declare Function WNetEnumResource Lib "mpr.dll" Alias _
       "WNetEnumResourceA" ( _
       ByVal hEnum As Long, _
       lpcCount As Long, _
       ByVal lpBuffer As Long, _
       lpBufferSize As Long) As Long
   Public Declare Function WNetCloseEnum Lib "mpr.dll" ( _
       ByVal hEnum As Long) As Long
   ' RESOURCE ENUMERATION
   Public Const RESOURCE_CONNECTED = &H1
   Public Const RESOURCE_GLOBALNET = &H2
   Public Const RESOURCE_REMEMBERED = &H3
   Public Const RESOURCETYPE_ANY = &H0
   Public Const RESOURCETYPE_DISK = &H1
   Public Const RESOURCETYPE_PRINT = &H2
   Public Const RESOURCETYPE_UNKNOWN = &HFFFF
   Public Const RESOURCEUSAGE_CONNECTABLE = &H1
   Public Const RESOURCEUSAGE_CONTAINER = &H2
   Public Const RESOURCEUSAGE_RESERVED = &H80000000
3. Execute the program. When you click on the form, a list of all the local
   network connections should be displayed, along with the shares they are
   connected to.
======================================================================
Keywords          : VB4WIN vb5all vb5howto
Version           : WINDOWS:4.0,5.0,95; WINNT:3.51,4.0
Platform          : WINDOWS winnt
Issue type        : kbhowto
============================================================================
=
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  MICROSOFT DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO
EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,
CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF
MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.  SOME STATES DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES
SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1997.
fine ===============================================================
l'esempio e' un po' lungo, spero che sia interessante.
vito.

...
: >oPotresti usare la API WNetEnumResources..
: >
: Ottima idea, "appendo" un esempietto ..........
: l'esempio e' un po' lungo, spero che sia interessante.
: vito.
E' bello essere apprezzati.
