J'ai besoin d'un script Apple qui basculera le wi-fi de l'appareil à des intervalles définis, disons toutes les 10 ou 15 minutes. Je suis sur un MacBook Pro de 2012 fonctionnant sous 10.9.5.
Réponses
Trop de publicités?AVERTISSEMENT: Je ne peux pas vérifier cela (si cela fonctionne réellement) pour le moment, mais je le ferai plus tard.
Ce script pour activer/désactiver le wifi est tiré d' ici:
try
set makiaeawirelessstatus to do shell script "networksetup -getairportpower en1"
on error
display dialog "Le script n'a pas fonctionné comme prévu, veuillez vérifier que la commande networksetup (dans le terminal) fonctionne sur votre système. Il a été testé sur mac os 10.7 (Build 11A459e). D'autres versions de mac os peuvent ne pas avoir cette commande disponible. Veuillez ouvrir le script applescript dans l'éditeur applescript pour plus de détails." buttons {"kthxbai"}
end try
if makiaeawirelessstatus is "Wi-Fi Power (en1): On" then
do shell script "networksetup -setairportpower en1 off"
else if makiaeawirelessstatus is "Wi-Fi Power (en1): Off" then
do shell script "networksetup -setairportpower en1 on"
else
display dialog "Le script n'a pas fonctionné comme prévu, veuillez vérifier que votre connexion sans fil est correctement spécifiée. Par défaut, dans ce script, c'est en1 (veuillez ouvrir le script applescript dans l'éditeur applescript pour plus de détails)" buttons {"kthxbai"}
end if
Vous devrez le modifier pour qu'il accepte des arguments (je le ferais, mais cela ressemblerait à quelque chose comme javascript)
Ensuite, si vous souhaitez que le script s'exécute de manière récurrente, utilisez quelque chose comme LaunchAgent ou cron. Je préfère LaunchAgent, car il est plus tolérant.
Modifiez la crontab de root (en exécutant par exemple EDITOR=nano sudo crontab -e
) et ajoutez une ligne
*/15 * * * * ifconfig en1 down;ifconfig en1 up
où en1
est l'identifiant indiqué par networksetup -listallhardwareports|awk '/^Hardware Port: (Wi-Fi|Airport)/{getline;print $2}'
.
Les commandes ifconfig
nécessitent des privilèges superutilisateur.
tell application "System Events" to tell process "SystemUIServer"
click (premier élément de la barre de menus dont la valeur de l'attribut "AXDescription" contient "Wi-Fi") de la barre de menus 1
try
clique sur l'article de menu 2 du menu de (premier élément de la barre de menus dont la valeur de l'attribut "AXDescription" contient "Wi-Fi") de la barre de menus 1
end try
end tell