如果连接到特定的wifi,则运行程序?


20

当我连接到特定路由器时,是否可以让程序自动启动,而当我断开与该路由器的连接时,该程序可以停止吗?

基本上,我希望程序在我上班时运行(灵活的时间,所以我不能只具有某种计时器功能),而在我在家或其他地方时则不需要。

我正在运行:Macbook air OS X 10.9.4版


Yuo想启动/终止哪种程序?我可以为您编写一个守护程序,该守护程序将执行bash脚本并在连接时传递“ SSID”,并在断开连接的网络中传递“ SSID”。
Mateusz Szlosek 2014年

没关系,我看到乔治找到了更好的解决方案:)
Mateusz Szlosek 2014年

@Mateusz 3rd-party软件并不总是更好的解决方案,而只是替代方案!
grg

@MateuszSzlosek,我也很好奇您的解决方案是什么。出于我的目的,我宁愿选择比其他应用程序少的东西,因为我将使用您的解决方案来连接我的应用程序。
rsaxvc 2014年

@rsaxvc我已经在我的快速实现中发布了Github链接。可以进行很多更改,但是您将获得基本知识:)
Mateusz Szlosek 2014年

Answers:


12

您可以使用ControlPlane,在其中可以设置规则来执行任务,例如根据各种标准(包括连接到Wi-Fi)打开应用程序。

ControlPlane支持多个上下文,其中上下文被定义为您正在执行的位置或活动。使用证据来源,您可以创建一组规则,以告诉ControlPlane适用于您的环境的上下文。当ControlPlane进入或离开上下文时,将执行一组动作。

ControlPlaneX是开放源代码项目的一个非正式分支,它使该项目在Mojave上正常工作。



@Seamus我已经添加了一个包含Mojave支持的维护分支的链接。
grg

谢谢,但是“非官方叉子”是什么意思?你知道吗?
Seamus

@Seamus我用这个术语来描述开源项目继续进行的方式。ControlPlaneX是ControlPlane的“分支”,这意味着它继续使用与原始代码相同的源代码并在原始代码的基础上构建,这是可能的,因为原始项目是开源的。如果项目的原始作者选择了一个叉子来鼓励人们贡献力量,那么它将成为正式的叉子,但是原始作者似乎并没有使用任何叉子,因此所有的叉子都是非官方的,因此是“非官方的叉子”。 。这似乎是最受欢迎的叉子。
grg

有趣的情况是……原始所有者请求帮助,而是有人分叉并按自己的方式行事。我猜想爱情和开源都公平:)
Seamus

7

为此,我创建了示例守护程序应用程序。您可以在Github上找到它。

要使其运行:

  • 使用Xcode进行编译。
  • 移动Network Listener.app/Applications目录。
  • 移动.networkConnected.networkDisconnected到您的$HOME目录。
  • 移动Network-Listener.plist~/Library/LaunchAgents
  • Make .networkConnected.networkDisconnected可执行文件。

当您登录到您的帐户时,它将自动运行。如果要测试,请在Terminal中运行:

launchctl load -S Aqua -w ~/Library/LaunchAgents/Network-Listener.plist

脚本接收SSID名称作为参数。

随时根据您的需要进行更改。如有任何问题,请通知我。


一切都是为了显示可能性而进行的,很多事情都可以改进。


1
感谢Mateusz的启发,我在Github上创建了一个类似于您的应用程序来执行我的VPN连接脚本,其中包括针对那些可能需要它的已编译应用程序二进制文件:github.com/p2/WifiWatch
Pascal,

6

您可以使用Sidekick,该工具可以在更改位置时执行“操作”。该位置是使用特定的Wi-Fi报告的,这意味着您可以在Wi-Fi发生变化时执行操作。

Sidekick是一款可根据您所在的位置自动更新笔记本电脑设置的应用程序。只需安装该应用程序,配置您经常去的地方(家庭,工作,咖啡店等),再也不用大惊小怪了!


3
Sidekick当前价格为$ 29.00
尊重TheCode 2014年
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.