2

У меня есть сверхлегкий ПК с Windows 7, который я использую во время ежедневных поездок на автобусе. Поскольку скорость процессора ограничена, я ищу способ отключить / включить Dropbox, когда я не подключен к сети WiFi. (Кажется, Dropbox использует постоянный кусок моего процессора, даже когда он ничего не может синхронизировать.)

Есть возможность отключить синхронизацию через иконку в трее Dropbox, но я бы хотел, чтобы это было как можно более плавным. Я разработчик .NET, поэтому написание кода - вариант. Итак, что я рассмотрел:

  • Задача Windows, которая запускается, когда я включаю / отключаю карту WiFi через аппаратный переключатель. Это может запустить командный файл для запуска / остановки процесса Dropbox. У меня проблемы с поиском события для запуска, хотя.
  • Макрос Autohotkey для запуска / остановки процесса. Слишком ручной.
  • Приложение AC #, которое обнаружит сетевое соединение и запустит / остановит Dropbox. Похоже, было бы больно писать.

Есть ли варианты, которые я пропускаю? Если бы кто-то мог указать мне на ресурс, который помог бы мне реализовать нечто подобное, я был бы признателен за это.

2 ответа2

1

Вы можете взглянуть на эту статью. Речь идет о отслеживании измененных сетевых подключений и использовании Win32-api.

Существуют также .Net-события для сетевых изменений. Но, как описано в этом вопросе StackOverflow, они не быстрые или ненадежные.

Кроме того, доступное сетевое соединение не всегда равно доступному интернет-соединению. Вы должны проверить, установлено ли интернет-соединение.

Я не знаю, как проверить интернет-соединение, но afaik Microsoft пингует свой собственный веб-сайт, чтобы определить, есть ли доступное соединение, и обновляет значок сетевого соединения в systray. Для вашей цели, следующий фрагмент кода может сделать эту работу:

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

Желаете ли вы использовать ярлык для отключения беспроводной связи вместо использования переключателя ноутбука?

Если это так, попробуйте использовать powershell и devcon для запроса / включения / отключения беспроводного адаптера вместе с соответствующим действием запуска / остановки dropbox при включении / отключении:

Неисправность:

taskkill /f /im Dropbox.exe /t

Запускать:

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

Примеры Devcon и PowerShell:

Включить / отключить беспроводной интерфейс в файле bat

Ярлык для включения / отключения беспроводной

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .