Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Изменение настроек подключений проверки подлинности IEEE 802.1X по локальной сети.

Ответить
Настройки темы
[решено] Изменение настроек подключений проверки подлинности IEEE 802.1X по локальной сети.

Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


Необходимо выполнить следующую задачу:
в окне "Сетевые подключения" выделить и открыть окно "Подключение по локальной сети" и "Подключение по локальной сети 2".
Параметры обоих окон одинаковы:
Class:SysListView32
Instance:1
ClassnameNN:SysListView321
Name:
Advanced (Class):[CLASS:SysListView32; INSTANCE:1]
ID:1
или сразу открыть необходимое окно, без открытия окна "Сетевые подключения".
Конечная цель отключение проверки подлинности IEEE 802.1X

По простоте своей наваял:
Код: Выделить весь код
Opt("WinTitleMatchMode", 4) 
Run("control ncpa.cpl") 
 
;Первое "Подключение по локальной сети" 
WinWait("Сетевые подключения","") 
$CLVItem = ControlListView("Сетевые подключения","","SysListView321","FindItem","Подключение по локальной сети") 
ControlListView("Сетевые подключения","","SysListView321","SelectClear") 
ControlListView("Сетевые подключения","","SysListView321","Select",$CLVItem) 
send("{ALT}{Ф}") 
send("{й}") 
WinWait("Подключение по локальной сети - свойства","Подключение") 
$Tabhdl = ControlGetHandle("Подключение по локальной сети - свойства","Подключение","SysTabControl321") 
ControlCommand("","",$Tabhdl,"TabRight","") 
WinWait("Подключение по локальной сети - свойства","Проверка подлинности") 
ControlCommand("Подключение по локальной сети - свойства","Проверка подлинности","Button1","UnCheck","") 
ControlClick("Подключение по локальной сети - свойства","Проверка подлинности","Button6") 
  
;Второе "Подключение по локальной сети 2" 
WinWaitActive("Сетевые подключения","") 
$CLVItem = ControlListView("Сетевые подключения","","SysListView321","FindItem","Подключение по локальной сети 2") 
ControlListView("Сетевые подключения","","SysListView321","SelectClear") 
ControlListView("Сетевые подключения","","SysListView321","Select",$CLVItem) 
send("{ALT}{Ф}") 
send("{й}") 
WinWait("Подключение по локальной сети 2 - свойства","Подключение") 
$Tabhdl = ControlGetHandle("Подключение по локальной сети 2 - свойства","Подключение","SysTabControl321") 
ControlCommand("","",$Tabhdl,"TabRight","") 
WinWait("Подключение по локальной сети 2 - свойства","Проверка подлинности") 
ControlCommand("Подключение по локальной сети 2 - свойства","Проверка подлинности","Button1","UnCheck","") 
ControlClick("Подключение по локальной сети 2 - свойства","Проверка подлинности","Button6") 
WinClose ( "Сетевые подключения", "")
но требуется помощь в следующем, надо проверить существование "Подключение по локальной сети 2" и в случае отсутствия прекратить (закончить) скрипт, а то он выделяет в "Сетевых подключениях" все подключения и зависает.

Отправлено: 13:19, 17-03-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата an99dre:
выделить и открыть окно "Подключение по локальной сети" »
Код: Выделить весь код
 _NetConnection_Verb("Подключение по локальной сети", "Сво&йства")
;_NetConnection_Verb("Local Area Connection", "Disa&ble")

While 1
    Sleep(1000)
WEnd

Func _NetConnection_Verb($sConnectionName, $sVerb)
;   Local $sFolderName = "Network Connections"
    Local $sFolderName = "Сетевые подключения"
    Local $oNetConnections, $oConnection
    Local $oShellApp = ObjCreate("Shell.Application")
    Local $oControlPanel = $oShellApp.Namespace(3)
    For $oFolderItem In $oControlPanel.Items
        If $oFolderItem.Name = $sFolderName Then
            $oNetConnections = $oFolderItem.GetFolder
            ExitLoop
        EndIf
    Next
    If Not(IsObj($oNetConnections)) Then Return SetError(1, 0, False)
    For $oFolderitem In $oNetConnections.Items
        If StringInStr($oFolderitem.Name, $sConnectionName) Then
            $oConnection = $oFolderitem
            ExitLoop
        EndIf
    Next
    If Not(IsObj($oConnection)) Then Return SetError(2, 0, False)
    $oConnection.InvokeVerb($sVerb)
    Sleep(1000)
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:14, 17-03-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


amel27,
Цитата:
надо проверить существование "Подключение по локальной сети 2" и в случае отсутствия прекратить (закончить) скрипт, а то он выделяет в "Сетевых подключениях" все подключения и зависает. »

Отправлено: 12:33, 23-03-2010 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


an99dre,
Так попробуйте:
Код: Выделить весь код
#include <GuiListView.au3>

;Run("control ncpa.cpl")
ShellExecute("::{7007ACC7-3202-11D1-AAD2-00805FC1270E}")
WinWaitActive("Сетевые подключения")
WinSetState("Сетевые подключения", "", @SW_MINIMIZE)
$hListView = ControlGetHandle("Сетевые подключения", "", "[CLASS:SysListView32; INSTANCE:1]")
$col = _GUICtrlListView_GetItemCount($hListView)

For $i = 0 To $col - 1
    $name = _GUICtrlListView_GetItemText($hListView, $i)
    If StringInStr($name, "Подключение по локальной сети") <> 0 Then
        _NetConnection_Verb($name, "Сво&йства")
        While 1
            ;Здесь нажимайте нужные Вам кнопки и т.д. только в конце обработки окна ExitLoop не забудьте.
            Sleep(1000)
        WEnd
    EndIf
Next
WinClose("Сетевые подключения")
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 25-03-2010 | #4


Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


madmasles, я в программировании "0", то что выложил ранее на 90 % сделано не руками, а автоматами записи кода. Поэтому большая просьба пояснить на "пальцах" что и как. Простым запуском Вашего скрипта пишет ошибку _NetConnection_Verb($name, "Сво&йства") указавая на символ _ и Unknown function name.

Отправлено: 16:48, 26-03-2010 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


an99dre,
А Вы функцию от amel27-а в конце скрипта добавили?
Похоже, нет. Так попробуйте
Код: Выделить весь код
#include <GuiListView.au3>

;Run("control ncpa.cpl")
ShellExecute("::{7007ACC7-3202-11D1-AAD2-00805FC1270E}")
WinWaitActive("Сетевые подключения")
WinSetState("Сетевые подключения", "", @SW_MINIMIZE)
$hListView = ControlGetHandle("Сетевые подключения", "", "[CLASS:SysListView32; INSTANCE:1]")
$col = _GUICtrlListView_GetItemCount($hListView)

For $i = 0 To $col - 1
    $name = _GUICtrlListView_GetItemText($hListView, $i)
    If StringInStr($name, "Подключение по локальной сети") <> 0 Then
        _NetConnection_Verb($name, "Сво&йства")
        While 1
            MsgBox(0, $i, $name, 5)
            WinClose($name)
            ExitLoop
        WEnd
    EndIf
Next
WinClose("Сетевые подключения")

Func _NetConnection_Verb($sConnectionName, $sVerb)
    ;   Local $sFolderName = "Network Connections"
    Local $sFolderName = "Сетевые подключения"
    Local $oNetConnections, $oConnection
    Local $oShellApp = ObjCreate("Shell.Application")
    Local $oControlPanel = $oShellApp.Namespace(3)
    For $oFolderItem In $oControlPanel.Items
        If $oFolderItem.Name = $sFolderName Then
            $oNetConnections = $oFolderItem.GetFolder
            ExitLoop
        EndIf
    Next
    If Not (IsObj($oNetConnections)) Then Return SetError(1, 0, False)
    For $oFolderItem In $oNetConnections.Items
        If StringInStr($oFolderItem.Name, $sConnectionName) Then
            $oConnection = $oFolderItem
            ExitLoop
        EndIf
    Next
    If Not (IsObj($oConnection)) Then Return SetError(2, 0, False)
    $oConnection.InvokeVerb($sVerb)
    Sleep(1000)
EndFunc   ;==>_NetConnection_Verb
У меня одно сетевое подключение по имени Подключение по локальной сети. Если у Вас их больше одного, то скрипт должен открывать их по очереди, сообщать об этом и менять их через 5 секунд.

Последний раз редактировалось madmasles, 26-03-2010 в 17:11. Причина: код поправил

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:05, 26-03-2010 | #6


Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


madmasles, ОГРОМНОЕ СПАСИБО, наконец с Вашей помощью получил то, что хотел.


Код: Выделить весь код
#include <GuiListView.au3>

;Run("control ncpa.cpl")
ShellExecute("::{7007ACC7-3202-11D1-AAD2-00805FC1270E}")
WinWaitActive("Сетевые подключения")
WinSetState("Сетевые подключения", "", @SW_MINIMIZE)
$hListView = ControlGetHandle("Сетевые подключения", "", "[CLASS:SysListView32; INSTANCE:1]")
$col = _GUICtrlListView_GetItemCount($hListView)

For $i = 0 To $col - 1
    $name = _GUICtrlListView_GetItemText($hListView, $i)
    If StringInStr($name, "Подключение по локальной сети") <> 0 Then
        _NetConnection_Verb($name, "Сво&йства")
        While 1
            $Tabhdl = ControlGetHandle("","Подключение","SysTabControl321") 
            ControlCommand("","",$Tabhdl,"TabRight","") 
            WinWait("","Проверка подлинности") 
            ControlCommand("","Проверка подлинности","Button1","UnCheck","") 
            ControlClick("","Проверка подлинности","Button6") 
            WinClose("","Проверка подлинности")
            Sleep(1000)
            ExitLoop
        WEnd
    EndIf
Next
WinClose("Сетевые подключения")

Func _NetConnection_Verb($sConnectionName, $sVerb)
    ;   Local $sFolderName = "Network Connections"
    Local $sFolderName = "Сетевые подключения"
    Local $oNetConnections, $oConnection
    Local $oShellApp = ObjCreate("Shell.Application")
    Local $oControlPanel = $oShellApp.Namespace(3)
    For $oFolderItem In $oControlPanel.Items
        If $oFolderItem.Name = $sFolderName Then
            $oNetConnections = $oFolderItem.GetFolder
            ExitLoop
        EndIf
    Next
    If Not (IsObj($oNetConnections)) Then Return SetError(1, 0, False)
    For $oFolderItem In $oNetConnections.Items
        If StringInStr($oFolderItem.Name, $sConnectionName) Then
            $oConnection = $oFolderItem
            ExitLoop
        EndIf
    Next
    If Not (IsObj($oConnection)) Then Return SetError(2, 0, False)
    $oConnection.InvokeVerb($sVerb)
    Sleep(1000)
EndFunc   ;==>_NetConnection_Verb

Отправлено: 18:11, 27-03-2010 | #7


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


an99dre,
А без функции amel27-а мой код бесполезен. Так что
Цитата an99dre:
ОГРОМНОЕ СПАСИБО »
Я думаю, к нему тоже относится.

Отправлено: 03:25, 28-03-2010 | #8


Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата madmasles:
А без функции amel27-а мой код бесполезен. Так что ОГРОМНОЕ СПАСИБО
Я думаю, к нему тоже относится. »
Извиняюсь, конечно Вы правы. Ещё раз огромное спасибо всем принявшим участие.

Отправлено: 00:26, 29-03-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Изменение настроек подключений проверки подлинности IEEE 802.1X по локальной сети.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Не видит подключений по локальной сети alkrymov Сетевые технологии 5 26-01-2010 11:10
[решено] IEEE 802.1x biork Автоматическая установка Windows 2000/XP/2003 2 14-08-2007 20:43
Wireless LAN Access Point IEEE 802.11B Как настроить? SWAP Сетевые технологии 6 04-04-2005 09:04
Индикатор подключений по локальной сети FreiDer Сетевые технологии 3 01-03-2005 22:06
BlueTooth vs Wi-Fi (IEEE 802.11b) german r Мобильные ОС, смартфоны и планшеты 22 24-01-2003 14:21




 
Переход