首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net 断开和连接网络连接 修改代码解决办法

2012-04-14 
vb.net断开和连接网络连接修改代码在vb.net中实现断开和连接网络连接的代码,我在网上找了一段代码Option E

vb.net 断开和连接网络连接 修改代码
在vb.net中实现断开和连接网络连接的代码,我在网上找了一段代码
Option Explicit On
'首先引用Microsoft Shell Controls And Automation
Private Function ExcNetLinkMenu(ByVal AdapterName As String, ByVal MenuName As String) As Boolean
  On Error Resume Next
  Dim mShell As New Shell32.Shell
  Dim NetConnection As Shell32.Folder
  Dim FolderItem As Shell32.FolderItem
  Dim NetConnectionItem As ShellFolderItem
  Dim verb As Shell32.FolderItemVerb
  NetConnection = mShell.NameSpace(49) '这个49是我找出来的,有了它就可以避免遍历控制面板
  If ObjPtr(NetConnection) = 0 Then
  ExcNetLinkMenu = False
  GoTo exitfunction
  End If
  Dim flag As Boolean
  flag = False
  For Each FolderItem In NetConnection.Items
  If FolderItem.Name = AdapterName Then
  NetConnectionItem = FolderItem
  flag = True
  Exit For
  End If
  Next
  If flag = False Then
  ExcNetLinkMenu = False
  GoTo exitfunction
  End If
  For Each verb In NetConnectionItem.Verbs
  If verb.Name = MenuName Then
  flag = True
  verb.DoIt()
  ExcNetLinkMenu = True
  GoTo exitfunction
  End If
  Next
  If flag = False Then
  ExcNetLinkMenu = False
  GoTo exitfunction
  End If
exitfunction:
  mShell = Nothing
  NetConnection = Nothing
  FolderItem = Nothing
  NetConnectionItem = Nothing
  verb = Nothing
End Function

Private Sub Button1_Click()
  Dim flag As Boolean
  '把 本地连接 2 换成你要控制的本地连接的名字
  flag = ExcNetLinkMenu("本地连接 2", "停用(&B)") '这个在2000下对应的是禁用,具体是什么,点右键,自己看吧
End Sub

Private Sub Button1_Click()
  '把 本地连接 2 换成你要控制的本地连接的名字
  Dim flag As Boolean
  flag = ExcNetLinkMenu("本地连接 2", "启用(&A)")
End Sub
这是用vb写的代码,我在vb.net2005中的操作中提示
这条语句提示错误1语句在命名空间中无效。C:\Documents and Settings\Administrator\Local Settings\Application Data\Temporary Projects\WindowsApplication1\Form1.vb41WindowsApplication1
该怎么改一下呀?在vb.net中要引入一个什么控件呀?
我是一个刚入门的,不知道该怎么改?哪位大侠帮忙给讲一下该怎么改呀?
或者在vb.net中的代码是什么呀?里面要放入什么控件,和要引入什么控件,希望给讲的详细一点,我是个菜鸟,谢谢了!!!分数不是问题


[解决办法]

VB.NET code
Imports Shell32 
引用--》COM--》Microsoft Shell Controls And Automation


Public Class Form1

  '首先引用Microsoft Shell Controls And Automation
  Private Function ExcNetLinkMenu(ByVal AdapterName As String, ByVal MenuName As String) As Boolean
    On Error Resume Next
    Dim mShell As New Shell32.Shell
    Dim NetConnection As Shell32.Folder
    Dim FolderItem As Shell32.FolderItem
    Dim NetConnectionItem As ShellFolderItem
    Dim verb As Shell32.FolderItemVerb


    NetConnection = mShell.NameSpace(49)  '这个49是我找出来的,有了它就可以避免遍历控制面板
    If NetConnection Is Nothing Or NetConnection.Items.Count = 0 Then
      ExcNetLinkMenu = False
      GoTo exitfunction
    End If

    Dim flag As Boolean
    flag = False
    For Each FolderItem In NetConnection.Items
      If FolderItem.Name = AdapterName Then
        NetConnectionItem = FolderItem
        flag = True


        Exit For
      End If
    Next
    If flag = False Then
      ExcNetLinkMenu = False
      GoTo exitfunction
    End If
    For Each verb In NetConnectionItem.Verbs
      If verb.Name = MenuName Then
        flag = True
        Call verb.DoIt()
        ExcNetLinkMenu = True
        GoTo exitfunction
      End If
    Next
    If flag = False Then
      ExcNetLinkMenu = False
      GoTo exitfunction
    End If
exitfunction:
    mShell = Nothing
    NetConnection = Nothing
    FolderItem = Nothing
    NetConnectionItem = Nothing
    verb = Nothing
  End Function

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '把 本地连接 2 换成你要控制的本地连接的名字
    Dim flag As Boolean
    flag = ExcNetLinkMenu("本地连接 2", "启用(&A)")
  End Sub

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim flag As Boolean
    '把 本地连接 2 换成你要控制的本地连接的名字
    flag = ExcNetLinkMenu("本地连接 2", "禁用(&D)") '这个在2000下对应的是禁用,具体是什么,点右键,自己看吧

  End Sub
End Class


[解决办法]
项目--添加引用--com--选择Microsoft Shell Controls And Automation--确定

[解决办法]
首先要添加 Shell32引用

项目-->添加引用-->com-->Microsoft Shell Controls And Automation选择
VB.NET code
Option Explicit OnImports Shell32Public Class Form1 Private Function SetNetworkAdapter(ByVal networkConnection As String, ByVal sVerb As String) As Boolean        Dim sh As Shell32.Shell = New Shell32.Shell()        Dim folder As Shell32.Folder        folder = sh.NameSpace(49)        Try            For Each myItem As Shell32.FolderItem In folder.Items()                If myItem.Name = networkConnection Then                    For Each Fib As Shell32.FolderItemVerb In myItem.Verbs()                        If Fib.Name = sVerb Then                            Fib.DoIt()                            Return True                        End If                    Next                End If            Next        Catch ex As Exception            MessageBox.Show(ex.Message)            Return False        End Try        Return True    End FunctionPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   SetNetworkAdapter("本地连接", "停用(&B)")    End Sub    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click        SetNetworkAdapter(True)        'SetNetworkAdapter("本地连接", "启用(&A)")    End SubEnd Class
[解决办法]
不好意思
VB.NET code
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click    SetNetworkAdapter("本地连接", "启用(&A)")End Sub 

热点排行