Access

Habilitar o deshabilitar el modo avión en Windows mediante PowerShell o VBA

Durante mucho tiempo he estado buscando una forma sencilla de habilitar/deshabilitar el Modo Avión en mi PC.

A lo largo de los años, he encontrado muchas publicaciones que habilitan o deshabilitan los adaptadores WiFi y similares, ¡pero en realidad no activan el modo avión!

Bueno, finalmente descubrí un script de PowerShell simple para hacerlo.

La solución de PowerShell

#Load the necessary library(ies)
(void) (System.Reflection.Assembly)::LoadWithPartialName("System.Windows.Forms")
add-type -AssemblyName System.Windows.Forms
#Launch  the Airplane mode settings dialog
cmd /c 'start ms-settings:network-airplanemode'
#wait a little for it to load (adjust this as required by your system)
Start-Sleep 1
#Toggle the on/off setting switch
(System.Windows.Forms.SendKeys)::SendWait(" ")
#Close the dialog
(System.Windows.Forms.SendKeys)::SendWait("%+{F4}")

La belleza aquí es que ni siquiera necesitas privilegios administrativos.

No soy fanático de SendKeys, nunca los uso, pero para mis necesidades esta solución rápida y sencilla funciona.

La solución VBA

También se podría trasladar fácilmente a VBA… como por ejemplo:

#If VBA7 Then
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Sub ToggleWindowsAirplaneMode()
    'Launch  the Airplane mode settings dialog
    Shell "cmd /c start ms-settings:network-airplanemode"
    'Wait a little for it to load (adjust this as required by your system)
    Sleep 1000
    'Toggle the on/off setting switch
    SendKeys " "
    'Close the dialog
    SendKeys "%{F4}"
End Sub

Scripting Esto

Ahora bien, es bueno tener un comando de PowerShell que active o desactive el modo Avión de forma adecuada, pero no quería tener que abrir el ISE, recuperar el código y ejecutarlo… cada vez. Eso no mejoraría las cosas. Entonces, ¿cómo podríamos crear un archivo bat o vbs para que ejecute las cosas sin problemas?

El primer paso es guardar el código de PowerShell como un archivo ps1 independiente.

Archivo Bat

Nada podría ser más fácil. Simplemente crea un archivo bat e inserta un código como el siguiente:

powershell.exe -File "C:\Temp\ToggleAirplaneMode.ps1"

VBScript

Una vez más, es bastante trivial y simplemente podemos hacer:

WScript.CreateObject("WScript.Shell").run "cmd /c ""powershell.exe -File ""C:\Temp\ToggleAirplaneMode.ps1""""", 0, True

En ambos casos, simplemente cambie ‘C:\Temp\ToggleAirplaneMode.ps1’ por su ruta y nombre de archivo.

Espero que ayude a alguien más.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba