在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.