Astel064
Помог мой пост, ставь +!
- Сообщения
- 276
- Репутация
- 51
AutoIt: 3.3.6.1+
Версия: 1.0
Категория: Автоматизация, Интернет, Сеть, Система
Описание: Функция для включения/отключения общего доступа к Интернету для указанного сетевого интерфейса
Код/Пример:
Файл: EnableDisableICS.au3
История версий:
Код UDF:
Источники: autoit-script.ru, kazunposh.wordpress.com
Автор(ы): Bryuhanov, Astel064
Версия: 1.0
Категория: Автоматизация, Интернет, Сеть, Система
Описание: Функция для включения/отключения общего доступа к Интернету для указанного сетевого интерфейса
Код/Пример:
Код:
; Отключаем ICS:
_EnableDisableICS("D-Link DFE-520TX", "Hostednetwork", 0)
MsgBox(0,"Disable",@Error)
; Включаем ICS (подключение "D-Link DFE-520TX" "расшаривает" Интернет для подключения "Hostednetwork"):
_EnableDisableICS("WLAN", "Hostednetwork", 1)
MsgBox(0,"Enable",@Error)
Файл: EnableDisableICS.au3
История версий:
0.0: 10/10/2016, 16:09:29 Комментарий с исходником, который я правил (Автор Bryuhanov)
1.0: 28/01/2017
1.0: 28/01/2017
Код UDF:
Код:
#CS
Автор: Bryuhanov ( http://autoit-script.ru/index.php?topic=22965.0 )
Редактор: Astel064 ( http://autoit-script.ru/index.php?topic=25200 )
=====================================================================
Функция: _EnableDisableICS($sPublicConnectionName, $ssPrivateConnectionName, $bEnable)
Описание: Включает, либо отключает общий доступ к интернету для указанного сетевого подключения
Синтаксис: _EnableDisableICS($sPublicConnectionName, $ssPrivateConnectionName, $bEnable)
Параметры:
$sPublicConnectionName = Имя публичного подключения (с доступом к сети Интернет).
$ssPrivateConnectionName = Имя приватного подключения (которому будет открыт доступ к сети Интернет).
$bEnable = Если указано 1, то общий доступ будет открыт, иначе, если указано 0 - закрыт.
Возврат: 1=Успех, 0=Ошибка
@Error: 0=Успех, иначе:
1-7: Ошибка объекта
-1, -2: Не найдено одно (или оба соответственно) сетевое подключение
=====================================================================
#CE
#RequireAdmin
Func _EnableDisableICS($sPublicConnectionName, $ssPrivateConnectionName, $bEnable)
Local $oNetSharingManager, $oConnectionCollection, $oItem, $EveryConnection, $objNCProps, $bFound=0
$oNetSharingManager = ObjCreate("HNetCfg.HNetShare.1")
If NOT IsObj($oNetSharingManager) Then Return SetError(1,0,0)
$oConnectionCollection = $oNetSharingManager.EnumEveryConnection
If NOT IsObj($oConnectionCollection) Then Return SetError(2,0,0)
For $oItem In $oConnectionCollection
; $oNetSharingManager.NetConnectionProps($oItem).Name
$objNCProps = $oNetSharingManager.NetConnectionProps($oItem)
If NOT IsObj($objNCProps) Then Return SetError(4,0,0)
If $objNCProps.MediaType = 0 Then ContinueLoop
; MsgBox(0, "Ics", "Guid="&$objNCProps.Guid & @CRLF&"Name="&$objNCProps.Name & @CRLF&"DeviceName="&$objNCProps.DeviceName & @CRLF&"Status="&$objNCProps.Status & @CRLF&"MediaType="&$objNCProps.MediaType & @CRLF&"Characteristics="&$objNCProps.Characteristics, 0, 0x000000)
$EveryConnection = $oNetSharingManager.INetSharingConfigurationForINetConnection($oItem)
If NOT IsObj($EveryConnection) Then Return SetError(3,0,0)
If $objNCProps.name = $ssPrivateConnectionName Then
$bFound += 1
; MsgBox(0,"","Starting Internet Sharing For: " & $objNCProps.name)
If $bEnable Then
$EveryConnection.EnableSharing(1)
Else
$EveryConnection.DisableSharing()
EndIf
EndIf
Next
$oConnectionCollection = $oNetSharingManager.EnumEveryConnection
If NOT IsObj($oConnectionCollection) Then Return SetError(5,0,0)
For $oItem In $oConnectionCollection
$objNCProps = $oNetSharingManager.NetConnectionProps($oItem)
If NOT IsObj($objNCProps) Then Return SetError(6,0,0)
If $objNCProps.MediaType = 0 Then ContinueLoop
$EveryConnection = $oNetSharingManager.INetSharingConfigurationForINetConnection($oItem)
If NOT IsObj($EveryConnection) Then Return SetError(7,0,0)
If $objNCProps.name = $sPublicConnectionName Then
$bFound += 1
; MsgBox(0,"","Internet Sharing Success For: " & $objNCProps.name)
If $bEnable Then
$EveryConnection.EnableSharing(0)
Else
$EveryConnection.DisableSharing()
EndIf
EndIf
Next
If $bFound = 2 Then Return SetError(0,0,1)
If $bFound = 1 Then Return SetError(-1,0,0)
Return SetError(0,0,-2)
EndFunc
#CS
_EnableDisableICS("D-Link DFE-520TX", "Hostednetwork", 0)
MsgBox(0,"Disable",@Error)
_EnableDisableICS("WLAN", "Hostednetwork", 1)
MsgBox(0,"Enable",@Error)
#CE
Источники: autoit-script.ru, kazunposh.wordpress.com
Автор(ы): Bryuhanov, Astel064