Désactiver Dropbox lorsque le WiFi n'est pas disponible

2

J'ai un PC ultraléger avec Windows 7 que j'utilise lors de mes trajets quotidiens en bus. La vitesse du processeur étant limitée, je recherche un moyen de désactiver / activer Dropbox lorsque je ne suis pas connecté à un réseau WiFi. (Dropbox semble utiliser une partie stable de mon processeur même lorsqu'il ne peut rien synchroniser.)

Il y a une option pour désactiver la synchronisation via l'icône de la barre des tâches Dropbox, mais j'aimerais que cela soit aussi transparent que possible. Je suis un développeur .NET, l'écriture de code est donc une option. Jusqu'ici ce que j'ai considéré:

  • Une tâche Windows qui est déclenchée lorsque j'active / désactive la carte WiFi via le commutateur matériel. Cela pourrait exécuter un fichier de commandes pour démarrer / arrêter le processus Dropbox. J'ai du mal à trouver un événement à déclencher, cependant.
  • Une macro Autohotkey pour démarrer / arrêter le processus. Trop manuel.
  • AC # app qui détecterait une connexion réseau et démarrer / arrêter Dropbox. On dirait que ce serait difficile à écrire.

Y a-t-il des options que je néglige? Si quelqu'un pouvait m'indiquer une ressource qui pourrait m'aider à mettre en œuvre quelque chose de similaire, je l'apprécierais.

Josh Earl
la source

Réponses:

1

Vous pouvez jeter un oeil à cet article . Il s'agit de suivre les connexions réseau modifiées et utilise Win32-api.

Il existe également des événements .Net pour les changements de réseau. Mais comme décrit dans cette question StackOverflow , ils ne sont ni rapides ni fiables.

En dehors de cela, une connexion réseau disponible n'est pas toujours égale à une connexion Internet disponible. Vous devez vérifier si une connexion Internet est établie.

Je ne sais pas comment vérifier la connexion Internet, mais afaik microsoft envoie une requête ping à son propre site Web pour déterminer s'il existe une connexion disponible et mettre à jour l'icône de connexion réseau dans la barre des tâches. Pour ce faire, code-snipet pourrait faire le travail:

try
{
   System.Net.IPHostEntry = System.Net.Dns.GetHostByName("www.google.com");
   return true;
}
catch
{
   return false; // host not reachable.
}
Wullxz
la source
0

Seriez-vous prêt à utiliser un raccourci pour désactiver le sans fil au lieu d'utiliser le commutateur pour ordinateur portable?

Si tel est le cas, essayez d'utiliser powershell et devcon pour interroger / activer / désactiver l'adaptateur sans fil, ainsi que l'action de démarrage / d'arrêt de la boîte de dépôt appropriée lors de l'activation / désactivation:

Fermer:

taskkill /f /im Dropbox.exe /t

Commencez:

cd C:\Users\[WindowsUsername]\AppData\Roaming\Dropbox\bin
start Dropbox.exe

Exemples Devcon et PowerShell:

Activer / désactiver l'interface sans fil dans un fichier bat

Raccourci pour activer / désactiver le sans fil

Craig H
la source