Desative o Dropbox quando o WiFi não estiver disponível

2

Eu tenho um PC ultraleve com o Windows 7 que uso durante meu trajeto diário de ônibus. Como a velocidade do processador é limitada, estou procurando uma maneira de desativar / ativar o Dropbox quando não estiver conectado a uma rede WiFi. (O Dropbox parece usar uma parte constante da minha CPU mesmo quando não consegue sincronizar nada.)

Existe uma opção para desativar a sincronização através do ícone da bandeja do Dropbox, mas gostaria que fosse o mais simples possível. Eu sou um desenvolvedor .NET, então escrever código é uma opção. Até agora o que eu considerei:

  • Uma tarefa do Windows que é acionada quando eu habilito / desabilito a placa WiFi através do switch de hardware. Isso pode executar um arquivo em lotes para iniciar / parar o processo do Dropbox. Estou tendo problemas em encontrar um evento para ser acionado.
  • Uma macro Autohotkey para iniciar / parar o processo. Demasiado manual.
  • Um aplicativo C # que detecta uma conexão de rede e inicia / interrompe o Dropbox. Parece que seria uma dor para escrever.

Existe alguma opção que eu estou negligenciando? Se alguém pudesse me indicar um recurso que me ajudaria a implementar algo semelhante, agradeceria.

    
por Josh Earl 13.04.2011 / 15:57

2 respostas

1

Você pode dar uma olhada neste artigo . Trata-se de rastrear conexões de rede alteradas e usa o Win32-api.

Existem também eventos .Net para mudanças de rede. Mas, conforme descrito nesta StackOverflow-Question , eles não são rápidos ou não confiável.

Além disso, uma conexão de rede disponível nem sempre é igual a uma conexão de Internet disponível. Você tem que testar se uma conexão de internet é estabelecida.

Eu não sei como verificar a conexão à Internet, mas afaik microsoft está pingando seu próprio site para determinar se há uma conexão disponível e atualizar o ícone de conexão de rede na bandeja do sistema. Para o seu propósito, seguir o snipet de código pode fazer o trabalho:

try
{
   System.Net.IPHostEntry = System.Net.Dns.GetHostByName("www.google.com");
   return true;
}
catch
{
   return false; // host not reachable.
}
    
por 17.04.2011 / 18:48
0

Você estaria disposto a usar um atalho para desativar a rede sem fio em vez de usar o botão do laptop?

Em caso afirmativo, tente usar o powershell e o devcon para consultar / ativar / desativar o adaptador sem fio, junto com a ação apropriada de iniciar / parar a caixa de depósito ao ativar / desativar:

Encerramento:

taskkill /f /im Dropbox.exe /t

Inicialização:

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

Exemplos de Devcon e PowerShell:

Ativar / desativar a interface sem fio em um arquivo bat

Atalho para ativar / desativar a conexão sem fio

    
por 13.04.2011 / 19:58