18

Я хочу запускать исполняемый файл каждый раз, когда подключаюсь к своей беспроводной сети дома. Цель - синхронизировать папку на моем ноутбуке с настольным компьютером.

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

Я использую Windows 7, и я также буду рад использовать программу, которая решает эту задачу.

2 ответа2

16

У меня был именно этот вопрос, и ответ Даррена был на правильном пути, но не помог мне полностью. Вот что я в итоге сделал.

Сначала определите, какое событие вы хотите использовать для запуска задачи. Запустите программу просмотра событий и перейдите к:Applications and Services Logs > Microsoft > Windows > WLAN-AutoConfig > Operational

В моем случае я не хотел, чтобы моя задача выполнялась до тех пор, пока я на самом деле не был подключен к определенной сети Wi-Fi, поэтому требуемый идентификатор события был 8001 . Быстрый способ создать задачу на основе этого события - щелкнуть правой кнопкой мыши по событию и выбрать «Прикрепить задачу к этому событию ...»

вот скриншот

В появившемся окне назовите вашу задачу как-нибудь умно и добавьте описание, чтобы вы запомнили, что это позже. Пройдите по мастеру, выберите программу, которую вы хотите запустить, и т.д., И когда она перейдет к последнему экрану, установите флажок «Открыть диалоговое окно Свойства для этой задачи, когда я нажму кнопку Готово».

На этом этапе задача будет запущена, когда компьютер успешно подключится к любой беспроводной сети. Чтобы ограничить его одной конкретной сетью, вам придется изменить задачу, чтобы отфильтровать что-то уникальное в метаданных, например SSID сети. В диалоговом окне свойств новой задачи перейдите на вкладку «Триггеры» и измените триггер.

Теперь запишите значения для основного триггера. Вы собираетесь переключиться на пользовательский триггер, и когда вы это сделаете, он станет пустым, и вам нужно будет снова ввести значения. После нажатия «Новый фильтр событий ...» заново создайте базовый фильтр, выбрав необходимый журнал событий, источник событий и введя идентификатор события.

Обратите внимание, что нет места для указания метаданных определенного события (например, SSID беспроводной сети). Вы должны будете отредактировать сырой XML, чтобы это произошло, как я обнаружил в этой статье.

Чтобы выяснить, какие метаданные необходимо отфильтровать в журнале событий, вернитесь в средство просмотра событий и перейдите на вкладку «Сведения» для события. Переключитесь на представление XML. Для этого конкретного случая соответствующий бит выглядит примерно так:

<EventData>
  ...
  <Data Name="SSID">Your WiFi Network</Data>
  ...
</EventData>

Вернитесь в диалоговое окно "Фильтр новых событий", переключитесь на вкладку XML и установите флажок "Редактировать запрос вручную".

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

and *[EventData[Data[@Name='SSID']='Your WiFi Network']]

Вставьте это прямо перед </Select>

Boom. Вы сделали


Просто примечание, которое может сделать это проще, вместо того, чтобы редактировать XML для триггера, вы можете переключиться на вкладку Условия при вызове свойств для задачи. Здесь есть опция «Пуск только в том случае, если доступно следующее сетевое соединение:» и предоставляет раскрывающийся список сетей, к которым вы ранее подключались. Я подозреваю, что это также соответствующим образом отфильтрует триггер. Джастин

6

Для этого вы можете использовать планировщик заданий Windows 7.

На вкладке «Триггеры» начните задание On an event

Я не запускаю Windows 7 на ноутбуке, но считаю, что идентификатор события можно найти в Microsoft-Windows-WLAN-AutoConfig.

На вкладке «Условия» выберите « Start Only if the following network connection is available и определенная беспроводная сеть.

Затем вызовите программу в разделе Действия.

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