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

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

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

Нужно сделать скрипт на выключение модемного соединения через панель управления- сетевые подключение
Модемное соединение “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 Кб, 3 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2017, 22:42
Ответы с готовыми решениями:

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

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

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

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

35
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
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
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
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
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
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
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
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
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
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
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
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
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
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
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,030
25.10.2017, 01:13 20
Да нет такого ПО (включая ФМ), которое может полноценно заменить explorer.
0
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 - 2022, CyberForum.ru