Отключите Dropbox, когда WiFi не будет доступен

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

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

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

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

2
задан 12.07.2011, 06:11

2 ответа

Вы могли смотреть на эту статью. Это об отслеживании измененных сетевых соединений и использует API Win32.

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

Кроме этого, доступное сетевое соединение не всегда равно доступному интернет-соединению. Необходимо протестировать, если интернет-соединение устанавливается.

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

try
{
   System.Net.IPHostEntry = System.Net.Dns.GetHostByName("www.google.com");
   return true;
}
catch
{
   return false; // host not reachable.
}
1
ответ дан 12.12.2019, 00:16

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

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

Завершение работы:

taskkill /f /im Dropbox.exe /t

Запуск:

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

Devcon и примеры PowerShell:

Позвольте/запретите беспроводной интерфейс в bat-файле

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

0
ответ дан 12.12.2019, 00:16

Теги

Похожие вопросы