Newsgroup: it.comp.lang.visual-basic
Titolo: abilitare e disabilitare scheda rete da codice

salve a tutti,
avrei la necessità di abilitare e disabilitare la scheda di rete
tramite codice da vb6...qualcuno sa che tipo di api o ocx (anche di
terze parti) puo' essere utilizzato?????
grazie a tutti




wrote:

ciao,
io l'avevo fatto usando l'oggetto shell.application. Il problema e'
che funziona su win 2000, ma non su 9x. Penso che funzioni anche su
XP, ma non l'ho provato (a me serviva solo su 2000 in italiano e
quindi non mi sono posto il problema). Inoltre dipende dalla lingua.
Quindi non e' sicuramente la soluzione migliore.
Puoi guardare sul sito 
http://www.componentsource.com
 se trovi qualche
ocx. 
Se proprio sei disperato ti passo il codice che ho usato io:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As
Long)
sub DisabilitaNIC()
dim bEnabled As Boolean
dim oEnableDisableVerb As Object
    Dim shellApp As Object, oControlPanel As Object, oNetConnections
As Object
    Dim folderitem As Object, oLanConnection As Object, Verb As Object
 
    'Definizione costanti: metti le stringhe che leggi nel pannello di
controllo
    Const ssfCONTROLS = 3
    Const sConnectionName As String = "Connessione alla rete locale
(LAN)"
    Const sEnableVerb As String = "&Abilita"
    Const sDisableVerb As String = "&Disabilita"
    Const sItemRete As String = "Rete e connessioni remote"
 
    'Imposto la error trap
    On Error GoTo DisabilitaNIC_err
 
     'Recupero un riferimento al pannello di controllo
    Set shellApp = CreateObject("shell.application")
    Set oControlPanel = shellApp.Namespace(ssfCONTROLS)
 
    DoEvents
 
    'Recupero un riferimento all'item "Network and Dial-up
Connections" del
    'pannello di controllo
    Set oNetConnections = Nothing
    For Each folderitem In oControlPanel.items
        If folderitem.Name = sItemRete Then
            Set oNetConnections = folderitem.getfolder
            Exit For
        End If
    Next
    'Se non l'ho trovato lo comunico all'utente ed esco dalla routine
    If oNetConnections Is Nothing Then
        MsgBox "Couldn't find 'Network and Dial-up Connections'
folder", vbCritical
        Exit Sub
    End If
 
    DoEvents
 
    'All'interno dell'item "Network and Dial-up Connections" cerco
l'item
    '"Local Area Connection"
    Set oLanConnection = Nothing
    For Each folderitem In oNetConnections.items
        If LCase(folderitem.Name) = LCase(sConnectionName) Then
            Set oLanConnection = folderitem
            Exit For
        End If
    Next
    'Se non l'ho trovato lo comunico all'utente ed esco dalla routine
    If oLanConnection Is Nothing Then
      MsgBox "Couldn't find '" & sConnectionName & "' item",
vbCritical
      Exit Sub
    End If
 
    DoEvents
 
    'Se sono arrivato a questo punto ho trovato l'item "Local Area
Connection"
    'e quindi vado a indagare fra le voci di menu che mi mette a
disposizione
    bEnabled = True
    Set oEnableDisableVerb = Nothing
    For Each Verb In oLanConnection.verbs
        If Verb.Name = sDisableVerb Then
             Verb.DoIt
        End If
    Next
DisabilitaNIC_exit:
    'Ripulisco la memoria rilasciando i riferimenti agli oggetti
    Set Verb = Nothing
    Set oLanConnection = Nothing
    Set oNetConnections = Nothing
    Set folderitem = Nothing
    Set oControlPanel = Nothing
    Set shellApp = Nothing
    exit sub
DisabilitaNIC_err:
    'se si verifica un errore lo visualizzo, ripulisco la memoria ed
esco
    MsgBox "Errore " & CStr(Err.Number) & ": " & Err.Description
    Resume DisabilitaNIC_exit
end sub
ciao

>avrei la necessitą di abilitare e disabilitare la scheda di rete
