#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