Activar/Desactivar Conexion de Red

y programas personales para otros como tu, puede que te corrijan ;)
Responder
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Activar/Desactivar Conexion de Red

Mensaje por Dany »

Bueno un ejemplo para activar/desactivar una coneccion de red.

Código: Seleccionar todo

Global Const $NCME_DEFAULT = 0
Global Const $S_OK = 0

Global Const $sCLSID_ConnectionManager = '{BA126AD1-2166-11D1-B1D0-00805FC1270E}'
Global Const $sIID_INetConnectionManager = '{C08956A2-1CD3-11D1-B1C5-00805FC1270E}'
Global Const $sIID_IEnumNetConnection = '{C08956A0-1CD3-11D1-B1C5-00805FC1270E}'
Global Const $sIID_INetConnection = '{C08956A1-1CD3-11D1-B1C5-00805FC1270E}'

Global Const $sINetConnectionManager = "EnumConnections hresult(int;ptr*)"
Global Const $sTag_IEnumNetConnection = "Next hresult(int;ptr*;ulong*)"
Global Const $sTag_INetConnection = "Connect hresult();Disconnect hresult();Delete hresult();Duplicate hresult(wstr;ptr*);GetProperties hresult(ptr)"
Global Const $sTag_NETCON_PROPERTIES = "byte guidId[16];ptr pszwName;ptr pszwDeviceName;dword Status;dword MediaType;dword dwCharacter;byte clsidThisObject[16];byte clsidUiObject[16]"




Func NetWorkEnableDisable($sNetWorkName, $bEnable_Disable = true)
    Local $hResult = 0
    Local $iCount = 0
    Local $pIEnumNetConnection = 0
    Local $oIEnumNetConnection = 0
    Local $pConnection = 0
    Local $tNETCON_PROPERTIES = 0
    Local $tName = 0
    Local $sNetName = ""
    Local $tDeviceName = 0
    Local $oConnection = 0
    Local $pPROPERTIES = 0
    Local $tPtr = 0
    Local $iState=0
    Local $oNetCManager = ObjCreateInterface($sCLSID_ConnectionManager, $sIID_INetConnectionManager, $sINetConnectionManager)


    If IsObj($oNetCManager) Then
        ConsoleWrite("$oNetCManager:" & IsObj($oNetCManager) & @CRLF)

        $oNetCManager.EnumConnections($NCME_DEFAULT, $pIEnumNetConnection)
        If $pIEnumNetConnection Then
            ConsoleWrite("$pIEnumNetConnection: " & $pIEnumNetConnection & @CRLF)
            $oIEnumNetConnection = ObjCreateInterface($pIEnumNetConnection, $sIID_IEnumNetConnection, $sTag_IEnumNetConnection)
            If IsObj($oIEnumNetConnection) Then
                ConsoleWrite("$oIEnumNetConnection: " & IsObj($oIEnumNetConnection) & @CRLF)

                While ($oIEnumNetConnection.Next(1, $pConnection, $iCount) = $S_OK)
                    ConsoleWrite("$pConnection: " & $pConnection & " $iCount: " & $iCount & @CRLF)
                    $oConnection = ObjCreateInterface($pConnection, $sIID_INetConnection, $sTag_INetConnection)

                    If IsObj($oConnection) Then
                        $tNETCON_PROPERTIES = DllStructCreate($sTag_NETCON_PROPERTIES)
                        $tPtr = DllStructCreate("ptr Pointer")
                        ConsoleWrite("$oConnection: " & IsObj($oConnection) & @CRLF)
                        $hResult = $oConnection.GetProperties(DllStructGetPtr($tPtr))
                        If SUCCEEDED($hResult) Then
                            $tNETCON_PROPERTIES = DllStructCreate($sTag_NETCON_PROPERTIES, $tPtr.Pointer)
                            $tName = DllStructCreate("wchar[260]", $tNETCON_PROPERTIES.pszwName)
                            $sNetName = DllStructGetData($tName, 1)
                            If $bEnable_Disable Then
                                If $sNetName = $sNetWorkName Then
                                    If SUCCEEDED($oConnection.Connect()) Then
                                        DllCall("netshell.dll", "none", "NcFreeNetconProperties", "ptr", DllStructGetPtr($tNETCON_PROPERTIES))
                                         Return True
                                    EndIf

                                EndIf
                            Else
                                If $sNetName = $sNetWorkName Then
                                    If SUCCEEDED($oConnection.Disconnect()) Then
                                     DllCall("netshell.dll", "none", "NcFreeNetconProperties", "ptr", DllStructGetPtr($tNETCON_PROPERTIES))
                                     Return True
                                    EndIf
                                EndIf
                            EndIf

                             DllCall("netshell.dll", "none", "NcFreeNetconProperties", "ptr", DllStructGetPtr($tNETCON_PROPERTIES))
                            $tPtr = 0
                            $tName = 0
                            $tNETCON_PROPERTIES = 0
                            $oConnection = 0
                        Else
                            Return False
                        EndIf
                    Else
                        Return False
                    EndIf


                WEnd
            Else
                Return False
            EndIf
        Else
            Return False
        EndIf

    Else
        Return False
    EndIf
EndFunc   ;==>NetWorkEnableDisable


Func SUCCEEDED($hr)
    Return ($hr >= 0)
EndFunc   ;==>SUCCEEDED

Saludos :smt027
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
XPyro
Profesional del Autoit
Mensajes: 542
Registrado: 04 Mar 2007, 10:12
Ubicación: México
Contactar:

Re: Activar/Desactivar Conexion de Red

Mensaje por XPyro »

Dany ese titulo te queda muy bien "Profesional de AutoIt", gracias por compartir tus conocimientos :smt006
Imagen
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Activar/Desactivar Conexion de Red

Mensaje por Dany »

XPyro escribió:Dany ese titulo te queda muy bien "Profesional de AutoIt", gracias por compartir tus conocimientos :smt006

Gracias bro, a ti también. un gusto verte activo en el foro :)

saludos
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Activar/Desactivar Conexion de Red

Mensaje por Chefito »

Muy buen código :smt002 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Activar/Desactivar Conexion de Red

Mensaje por Dany »

Chefito escribió:Muy buen código :smt002 .

Saludos.

Gracias bro :)

Saludos
  • ............................................Imagen
    ......................................Imagen
Responder