Отключение/подключение активных сетевых соединений

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
_Eternity_
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.05.2010 (Сб) 8:24

Отключение/подключение активных сетевых соединений

Сообщение _Eternity_ » 01.05.2010 (Сб) 8:34

Есть такая задача: есть компьютер, на нем есть активные сетевые подключения. Необходимо создать программу, которая бы при первом запуске отключала бы все активные сетевые соединения, а при повторном запуске - подключала.

Зачем это нужно? Вариантов много.

Как это сделать? В этом и весь вопрос.

Поиск примеров в интернете работы с сетевыми подключениями в нужном мне контексте особых успехов не принес. Видимо за порядочное количество лет, я так и не научилась пользоваться поисковиками :oops:

Буду благодарна за любой совет относительно реализации задачи. Хотя бы в какую стороне искать :arrow:

_Eternity_
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.05.2010 (Сб) 8:24

Re: Отключение/подключение активных сетевых соединений

Сообщение _Eternity_ » 01.05.2010 (Сб) 9:11

Нашла вот такой пример, кстати, на этом же форуме. (Я не совсем безнадежна :roll: )
В примере тупо находится в панели управления сетевые подключения и нужное соединение.
Код: Выделить всё
    On Error GoTo err
    Dim aa As New Shell
    Dim folder1 As Folder
    Dim fi As FolderItem
    Set folder1 = aa.[NameSpace](3)
            'панель управления
            For Each fi In folder1.Items()
             If LCase(fi.Name) = "сетевые подключения" Then
             
             Dim fff As Folder
            Set fff = fi.GetFolder
            Dim it1 As FolderItems2
            Dim i As Integer
            i = 0
            While fff.Items.Item(i).Name <> ""
            If LCase(fff.Items.Item(i).Name) = "ADSL_Connection" Then '''Здесь имя соединения'
                If fff.Items.Item(i).Verbs().Item(0).Name <> "&Отключить" Then
                    fff.Items.Item(i).Verbs().Item(0).DoIt
                End If
            End If
            i = i + 1
            Wend

             End If
            Next fi
    err:
    If err.Number = 91 Then Exit Sub
            Exit Sub


Буду пробовать разбираться и переделывать под свои задачи. Но все равно жду советов.

Исходный адрес кода: http://bbs.vbstreets.ru/viewtopic.php?f=1&t=39302

_Eternity_
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.05.2010 (Сб) 8:24

Re: Отключение/подключение активных сетевых соединений

Сообщение _Eternity_ » 03.05.2010 (Пн) 19:02

Получила следующий код:
Код: Выделить всё
    Sub Main()
        Dim aa As New Shell
        Dim folder1 As Folder
        Dim fi As FolderItem
        Dim FileName As String
        FileName = "ConnectionNames.txt"

        folder1 = aa.[NameSpace](3) 'панель управления
        For Each fi In folder1.Items()
            If LCase(fi.Name) = "сетевые подключения" Or LCase(fi.Name) = "network connections" Then
                Dim tf As Folder
                tf = fi.GetFolder
                Dim i, cnt As Integer
                cnt = tf.Items.Count
                If My.Computer.FileSystem.FileExists(FileName) Then
                    FileOpen(1, FileName, OpenMode.Input)
                    Do While Not EOF(1)
                        Dim tstr As String
                        tstr = LineInput(1)
                        tstr = tstr.Substring(1, tstr.Length - 2)
                        For i = 0 To cnt - 1
                            If tf.Items.Item(i).Name = tstr And tf.Items.Item(i).Verbs().Item(0).Name <> "&Отключить" And tf.Items.Item(i).Verbs().Item(0).Name <> "&Disconnect" And tf.Items.Item(i).Verbs().Item(0).Name <> "&Disable" Then
                                tf.Items.Item(i).Verbs().Item(0).DoIt()
                                i = cnt - 1
                            End If
                        Next i
                    Loop
                    FileClose(1)
                    My.Computer.FileSystem.DeleteFile(FileName)
                Else
                    FileOpen(1, FileName, OpenMode.Output)
                    For i = 0 To cnt - 1
                        If tf.Items.Item(i).Verbs().Item(0).Name = "&Отключить" Or tf.Items.Item(i).Verbs().Item(0).Name = "&Disconnect" Or tf.Items.Item(i).Verbs().Item(0).Name = "&Disable" Then
                            WriteLine(1, tf.Items.Item(i).Name)
                            tf.Items.Item(i).Verbs().Item(0).DoIt()
                        End If
                    Next i
                    FileClose(1)
                End If
                Exit Sub
            End If
        Next fi
    End Sub


На русских ХР работает отлично, а вот английские противятся.
Не могу понять почему. Есть у кого-нибудь идеи? :?: :?: :?:

Есть вариант, что все дело в & ("&Disconnect"). Проверить пока к сожалению не могу :(

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Отключение/подключение активных сетевых соединений

Сообщение arvitaly » 06.05.2010 (Чт) 9:10

Перебери да посмотри какое там имя кнопки

_Eternity_
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.05.2010 (Сб) 8:24

Re: Отключение/подключение активных сетевых соединений

Сообщение _Eternity_ » 06.05.2010 (Чт) 10:35

Спасибо что хоть что-то написал :) а то общаюсь сама с собой тут :cyclops:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 4

    TopList