Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
1
VBS

Скрипт на выключение модемного соединения через панель управления -> сетевые подключения

22.10.2017, 22:42. Показов 3272. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно сделать скрипт на выключение модемного соединения через панель управления- сетевые подключение
Модемное соединение “com”
Windows XP SP3 POSREADY RUS (возможно установлен MUI)

Чтобы он отрабатывал выключение
И дозаписывал в лог файл состояние, после выполнения процедуры.

Я на просторах интернета нашел 3 скрипта, но они почему то не работают под win XP
Так же нашел самописную интересную программку которая работает в ручном режиме (см. вложение)
1.
http://bbs.vbstreets.ru/viewtopic.php?f=1&t=41911
сразу выдает ошибку черт знает почему, я не программист
2.
http://forum.script-coding.com... php?id=743

скрипты во вложении.

internet7.vbs
Кликните здесь для просмотра всего текста
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) = "com" 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

internet9.vbs
Кликните здесь для просмотра всего текста
strNetConn = "Сетевые подключения" ' Network Connections для англ. версии ОС
strConn = "com" ' имя или часть имени подключения
strEnable = "&Включить" ' En&able для англ. версии ОС
strDisable = "&Отключить" ' Disa&ble для англ. версии ОС

Set objShell = CreateObject("Shell.Application")
Set objCP = objShell.Namespace(3) ' Панель управления
For Each elem in objCP.Items
If elem.Name = strNetConn Then
' получение папки "Сетевые подключения"
Set colNetwork = elem.GetFolder
Exit For
End If
Next

Set Conn = Nothing
For Each clsConn in colNetwork.Items
If Instr(LCase(clsConn.name), LCase(strConn)) Then
' получение указанного подключения
Set Conn = clsConn
Exit For
End If
Next
If Conn Is Nothing Then
WScript.Echo "Network Connection not found"
WScript.Quit
End If

bEnabled = True
Set objEnable = Nothing
Set objDisable = Nothing
For Each clsVerb in Conn.verbs
' если доступен глагол "Enable", подключение отключено
If clsVerb.Name = strEnable Then
Set objEnable = clsVerb
bEnabled = False
End If
' если доступен глагол "Disable", подключение подключено
If clsVerb.name = strDisable Then
Set objDisable = clsVerb
End If
Next

If bEnabled Then
objDisable.DoIt
strStatus = "disabled."
Else
objEnable.DoIt
strStatus = "enabled."
End If
WScript.Sleep 1000

WScript.Echo Conn.Name & " " & strStatus
Миниатюры
Скрипт на выключение модемного соединения через панель управления -> сетевые подключения  
Вложения
Тип файла: rar rasconnect.rar (194.2 Кб, 6 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2017, 22:42
Ответы с готовыми решениями:

ярлык Беспроводные соединения из Сетевые подключения
Здравствуйте! Я хочу подключить свой ноут к Вай-Фай. Раньше у меня было всё, язнаю точно, но...

Добавление модемного соединения в WINDOWS
Привет всем. Задача состоит в том, чтобы иметь простой, универсальный способ создания модемного...

Создание модемного соединения для виртуального ком порта
Доброго времени суток! Нужна помощь или совет, по созданию модемного соединения к виртуальному...

Как получить доступ к папке 'Сетевые подключения' на Windows7 через Shell32
Задача у меня получить доступ до сетьевых подключений через Shell32. Собственно вот код, который...

35
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
23.10.2017, 05:03 2
А rasdial чем не устроил?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Set Shell = CreateObject("Shell.Application")
If Not Shell.IsServiceRunning("Netman") Then T = 1 :_
If Not Shell.ServiceStart("Netman", False) Then _
MsgBox "Запустите вручную службу ""Сетевые подключения""!", 4144 : WSH.Quit
 
With GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
    .Visible = 0 : .Silent = 1 : .AddressBar = 0
    .MenuBar = 0 : .ToolBar = 0 : .StatusBar = 0
    For Each i In .document.Application.NameSpace(&H31).Items
        If i = "com" Then i.InvokeVerb "Disable" : Exit For
    Next : .Quit
End With
 
If T Then Shell.ServiceStop "Netman", False
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
23.10.2017, 09:30  [ТС] 3
Попробую ваш сегодня,
расдиал не работает, это ошибка в винде не исправленная с давних времен.
набираешь rasdial /d - пишет команда выполнена успешно, но на самом деле подключение как есть так и было
но когда ручками разъеденяеш через папку сетевые подключения, все срабатывает.
искал ответ на просторах ру и забугорского, ничего нет, есть темы и вопросы, а причин такого поведения не описано.
http://forum.ixbt.com/topic.cgi?id=14:54735
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
23.10.2017, 09:43  [ТС] 4
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Set Shell = CreateObject("Shell.Application")
If Not Shell.IsServiceRunning("Netman") Then T = 1 :_
If Not Shell.ServiceStart("Netman", False) Then _
MsgBox "Запустите вручную службу ""Сетевые подключения""!", 4144 : WSH.Quit
 
With GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
    .Visible = 0 : .Silent = 1 : .AddressBar = 0
    .MenuBar = 0 : .ToolBar = 0 : .StatusBar = 0
    For Each i In .document.Application.NameSpace(&H31).Items
        If i = "com" Then i.InvokeVerb "Disable" : Exit For
    Next : .Quit
End With
 
If T Then Shell.ServiceStop "Netman", False
Миниатюры
Скрипт на выключение модемного соединения через панель управления -> сетевые подключения  
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
23.10.2017, 09:52  [ТС] 5
я у вас вижу в скрипте проверку сервиса netman и вывод сообщения о ошибке - этого не нужно.
задача скрипта выполнить отключение и все. за остальным следить не нужно.
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
23.10.2017, 10:59 6
На случай случайного отключения. Там же не только проверка, но и включение.
Если в вирт. папке только одно подключение, то можно и парой строк обойтись:
Visual Basic
1
2
CreateObject("Shell.Application").NameSpace(&H31).Items.Item(0).InvokeVerb "Disable"
WSH.Sleep 3000
Но это не особо надёжно.

P.S.: Не дублируйте коды, дурной тон.
1
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
23.10.2017, 20:44  [ТС] 7
в папке несколько подключений, но нужно отключить только одно, с названием "COM"
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
23.10.2017, 23:23 8
Visual Basic
1
2
3
4
For Each i In CreateObject("Shell.Application").NameSpace(49).Items
    If UCase(i) = "COM" Then i.InvokeVerb "Disable" : Exit For
Next
WSH.Sleep 3000
1
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
23.10.2017, 23:32  [ТС] 9
Хмм. нет ни ошибок ни какой реакции,
скрипт не выдал ошибку и не отключил подключение
Миниатюры
Скрипт на выключение модемного соединения через панель управления -> сетевые подключения  
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
23.10.2017, 23:59 10
Если соединение открыть по Enter/даблклик, что появляется?
И попробуйте увеличить задержку с 3000 до 5000 мс, скажем.

И есть подозрение, что модемных соединений в папке просто не видно.
Visual Basic
1
2
3
4
For Each i In CreateObject("Shell.Application").NameSpace(49).Items
    List = List & i & vbCr
Next
MsgBox List
Что покажет скрипт?
1
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
24.10.2017, 09:06  [ТС] 11
https://www.cyberforum.ru/newr... p=11647012
Изображения
 
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
24.10.2017, 09:15  [ТС] 12
А по Enter дабл клик окно "Состояние" не отображается, попробовал в другой винде появляеться
то есть окно "состояние" у меня в этой винде вообще не открывается, explorer.exe заменен другой программой, если это влияет...
получаеться ваш скрипт рабочий, у альтернативно отключить через правой кнопкой мыши - Отключить на vbs не реализовать?

Я пытаюсь устранить эту проблему
http://sergeytroshin.ru/articl... -troubles/
https://support.microsoft.com/... dows-serve
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
24.10.2017, 09:38 13
Я поэтому и писал, что в отличии от первого примера данный ненадёжен. Он как раз такую ситуацию и может спровоцировать. На версиях поновее лечится диагностикой. На XP точно не помню. Вроде бы по Отключить/Включить через меню.
По поводу ругани в XP на объект. Верноятно, IE старенький. Так? До 8-ки обновляться не пробовали?
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
24.10.2017, 09:42  [ТС] 14
стоит ие 7 версии,
попробую обновить до 8, не знаю получиться или нет, так как это XP POSREADY 2009
вечером пошаманю
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
24.10.2017, 09:50  [ТС] 15
стоит ие7
Миниатюры
Скрипт на выключение модемного соединения через панель управления -> сетевые подключения  
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
24.10.2017, 21:56 16
anatolysn
Я понял. Тут варианта только 2. Либо обновляться и использовать первый пример либо играться с задержкой со вторым.
Если и 5000 мало, то можно 7000 взять. Экспериментируйте. Но это всё имеет смысл только после восстановления статуса.

P.S.: Лично у меня скрипт сделан по схеме Вкл/Выкл.

Вообще-то поспешил насчёт 2-х вариантов. У самого же в скрипте проверка имеется.
Так попробуйте:
Visual Basic
1
2
3
4
5
6
7
For Each i In CreateObject("Shell.Application").NameSpace(49).Items
  If i = "com" Then
    Set N = i.Verbs.Item(0) : If Len(N) = 10 Then _
    N.Doit : Do Until Len(N) = 9 : Set N = i.Verbs.Item(0) : Loop
    Exit For
  End If
Next
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
24.10.2017, 23:55  [ТС] 17
Этот скрипт вообще вешает комп - загрузка проца 80% и ничего не происходить.
Ие7 не могу обновить до 8 - ошибка при обновлении.
а первый - он в ошибку вылазит, проверял в начале.
До завтра отложу

Окно состояния не выводит по причине использования измененного отличного от оригинала explorer, и ничего не поделаешь.
если же запустить оригинальный explorer - то все нормально.

попробую через удаление ие7 и устанвки ие8 попробовать.
но это завтра
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
25.10.2017, 00:27 18
Не понимаю. Как вообще можно заменить explorer? Там же и таскбар с меню Пуск и куча shell-окон.
Если explorer не запущен, то и проблемы на поверхности. Виртуальная папка-то shell-овская.
Так при запущенном explorer.exe с первым и последним скриптом проблемы остаются?
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 32
25.10.2017, 01:06  [ТС] 19
если используется стороннее ПО, то оно заменяет стандартный explorer.exe
завтра проверю
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
25.10.2017, 01:13 20
Да нет такого ПО (включая ФМ), которое может полноценно заменить explorer.
0
25.10.2017, 01:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2017, 01:13
Помогаю со студенческими работами здесь

Не получается обновить драйвер через панель управления Radeon
Всем привет! Проблема не сказать, что критичная, но всё же хочется решить её. Не получается...

СВЧ Samsung Панель управления не реагирует на нажатия , СВЧ Samsung часто вылетает панель управления может кто знает как обойт
СВЧ Samsung Панель управления не реагирует на нажатия .

ASUS n750jk - Не включается V-Sync через Панель управления NVidia
Добрый день. На вас последняя надежда, англоязычные саппорты NVidia и их форумы мне не помогли,...

Какой програмой удалять проги который не удаляется через панель управления
какой програмой удалять проги который не удаляется через панель управления


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru