【问题标题】:Starting scheduled task when connected to specific network连接到特定网络时启动计划任务
【发布时间】:2014-12-13 00:12:24
【问题描述】:

我想在 Windows 7 中创建一个基于事件的计划任务,当通过 LAN 建立特定网络连接时启动程序 (VirtualRouter)。我尝试使用 Windows/NetworkProfile 10000 触发器,但它会产生循环,因为 VirtualRouter 创建了它自己的网络连接。

【问题讨论】:

  • 您可以为此使用脚本吗?这将打开几种可能性,例如在脚本中检查 pc 连接到哪个网络,或者只是确保脚本只运行一次。
  • 当然 :) 目的是证明手段的合理性;)

标签: networking windows-7 scheduled-tasks router eventtrigger


【解决方案1】:

既然你说使用脚本是可以的,最简单的方法可能是像这个例子一样在 Powershell 中使用简单的单行代码:

if (! (ps | ? {$_.Path -eq "C:\Windows\system32\notepad.exe"})) {& "C:\Windows\system32\notepad.exe"}

这只会在您的程序尚未运行时启动它。如果您每次在网络连接上使用 10000 事件触发它,它仍然只会启动您的程序一次。

我选择 Powershell 是因为它包含在 windows 中,而且它是一个很好的单行,所以如果你在另一种脚本语言方面更有经验,同样的原则:

  • 检查进程是否已经在运行
  • 如果没有运行,启动它

当然可以用任何语言实现。

【讨论】:

  • 您的脚本对于我的虚拟路由器的 .bat 文件以外的任何类型的应用程序都可以正常工作,因为它在 VirtualRouter 建立自己的网络连接之前关闭。使用 10000 个事件触发器,它是 make 循环。但是,您建议我让进程运行比建立虚拟路由器网络的连接更长的时间。我在我的 vbs 脚本中使用了 WScript.Sleep 10000。谢谢你:)现在一切都很好;)
  • @CamilloS 啊,是的,这是个问题。很高兴听到您解决了您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 2013-10-15
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多