在Windows 7中连接到特定网络时如何运行程序


19

我希望每次在家连接到无线网络时都运行一个可执行文件。目的是将笔记本电脑上的文件夹与台式机同步。

加入无线网络后,可以通过任何方式运行程序或脚本吗?

我正在运行Windows 7,并且我也很乐意使用处理此类任务的程序。

Answers:


16

我有这个确切的问题,Darren的答案是正确的,但并没有完全理解我。这就是我最终要做的。

首先确定要用于触发任务的事件。运行事件查看器程序,然后导航至: Applications and Services Logs > Microsoft > Windows > WLAN-AutoConfig > Operational

就我而言,在我实际连接到特定的WiFi网络之前,我不希望我的任务运行,所以我需要的事件ID是8001。基于此事件创建任务的快速方法是右键单击该事件,然后选择“将任务附加到此事件...”。

这是截图

在弹出的窗口中,为您的任务命名一个巧妙的名称,并添加描述,以便您以后记住它。遍历向导,选择要运行的程序,等等,然后进入上一个屏幕,选中“在单击“完成”时打开此任务的属性对话框”框。

此时,该任务将在计算机成功连接到任何无线网络时运行。为了将其限制为一个特定的网络,您必须修改任务以过滤元数据中唯一的内容,例如网络的SSID。在新任务的属性对话框中,转到“触发器”选项卡并编辑触发器。

现在,记下基本触发器的值。您将切换到“自定义”触发器,当您这样做时,它将开始为空白,并且需要再次填写值。单击“新建事件过滤器...”后,通过选择必要的事件日志,事件源并输入事件ID,重新创建基本过滤器。

请注意,没有地方可以指定来自特定事件的元数据(例如无线网络的SSID)。正如我在本文中发现的那样,您需要编辑原始XML才能实现此目的。

要确定您需要在事件日志中过滤哪些元数据,请返回到事件查看器,然后单击事件的“详细信息”选项卡。切换到XML视图。对于这种特殊情况,相关位如下所示:

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

返回“新事件过滤器”对话框,切换到XML选项卡,然后选中“手动编辑查询”旁边的框。

回到上面链接的文章,您将看到需要添加的字符串如下所示:

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

将此粘贴在 </Select>

繁荣。你完成了。


只是一个可能会使此操作变得更简单的注释,而不是为触发器编辑XML,您可以在调出任务的属性时切换到“条件”选项卡。这里有一个选项“仅在以下网络连接可用时才启动:”,并提供您先前已连接的网络的下拉列表。我怀疑这也会适当地过滤触发器。贾斯汀


在Windows 7中,我无法通过“仅在[..]时启动”下拉菜单,但是使用自定义触发器和您提到的XML才能使触发器正常工作。使用下拉菜单(未显示我需要的SSID)时,由于这种情况我总是停下来。
— joweiser 2013年

根据OP请求,“可用的网络连接”并不意味着客户端正在连接或已连接到确定的网络连接。
— 盖亚

6

您可以为此使用Windows 7任务计划程序。

在“触发器”选项卡下,开始任务 On an event

我不在笔记本电脑上运行Windows 7,但我相信可以在Microsoft-Windows-WLAN-AutoConfig中找到事件ID 。

在“条件”选项卡下Start Only if the following network connection is available,然后指定所需的无线网络。

然后在“动作”下调用该程序。


根据OP请求,“可用的网络连接”并不意味着客户端正在连接或已连接到确定的网络连接。
— 盖亚
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.