首页 > 咬口苹果, 网络 > 编写AppleScript快速切换网络位置

编写AppleScript快速切换网络位置

2009年10月27日 发表评论 阅读评论

一直想自动切换网络位置,就琢磨了一下。最普通的切换方法我想大家应该都知道了,就是进入网络设置(通过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

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后,你的权限是非常高的,可以执行任何操作,意味着你可以随意破坏系统(事实上你可以把当前的系统都删除),所以务必注意安全。这些是另一个故事了,不展开了。

  1. Blueanima
    2009年11月10日09:49 | #1

    以小见大,我看到一个技术牛人!呵呵。像你学习。我也使用的苹果机器,而且是因为IBM情节的缘故,使用是powercpu的powerbook g4。非常感谢你分享你的技术心得,对我来说受益匪浅。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.