一直想自动切换网络位置,就琢磨了一下。最普通的切换方法我想大家应该都知道了,就是进入网络设置(通过Airport的图标下拉也好,dock上保存系统偏好设置也行),然后切换、应用,如果进一步需要控制Airport无线网卡,那么还需要多点击一次。我这个人懒,能点一次的何必要费四五次点击呢?
于是有了这个方法: 打开应用程序——实用工具——AppleScript编辑器,然后将下面的代码贴进去(后面我来讲解含义,请注意每行之间没有空行),按照后面的图示保存为只运行的应用程序,以后你双击这个程序就会运行脚本了。
tell application “System Events”
tell network preferences
do shell script “scselect ‘Home'”
do shell script “sudo networksetup -setairportpower AirPort on” user name “用户名” password “密码” with administrator privileges
end tell
end tell
讲解下代码含义,其中第三行scselect其实是一个指令,你可以放到终端里运行,将列出所有的网络位置,其中加“*”的是当前正在使用的。
scselect 位置名
就是切换到这个网络位置,所以第三行后面的Home你可以换成你自己设置的位置名。
第四行是切换Airport,由于使用了sudo,因此需要提供管理帐户和密码,也就是用户名和密码那里填的内容(注意前后的双引号还是要保持的)。中间的on是打开,改成off后就是关闭,按需修改。 改好适合你的文本以后,将其贴入AppleScript编辑器,点击“编译”,可以检查你是否有语法出错。报错的话请仔细核对,我的代码是我测试过的,没有问题。
附注:一般而言,你的MAC电脑主账户是具有管理权限的,也就是管理账户,当你没有设置密码,是无法使用sudo获得root权限的。因此,要使用sudo的话,请设置账户密码。至于直接启用root账户,那请搜索一下吧。提醒一句,sudo或者启用root后,你的权限是非常高的,可以执行任何操作,意味着你可以随意破坏系统(事实上你可以把当前的系统都删除),所以务必注意安全。这些是另一个故事了,不展开了。
Blueanima
2009年11月10日 @ 09:49
以小见大,我看到一个技术牛人!呵呵。像你学习。我也使用的苹果机器,而且是因为IBM情节的缘故,使用是powercpu的powerbook g4。非常感谢你分享你的技术心得,对我来说受益匪浅。