我想使用apple-script自动更改我的IP地址的过程。所以我写了一个会自动执行此操作的脚本,但我在设置IP地址时遇到了问题。
set ipAddress to "192.168.110.48"
tell application "System Preferences"
activate
set current pane to pane id "com.apple.preference.network"
end tell
tell application "System Events"
tell process "System Preferences"
click checkbox "Click the lock to make changes." of window "Network"
tell application "System Events" to keystroke "p"
tell application "System Events" to keystroke "a"
tell application "System Events" to keystroke "s"
tell application "System Events" to keystroke "s"
tell application "System Events" to keystroke "w"
tell application "System Events" to keystroke "o"
tell application "System Events" to keystroke return
click button 11 of window "Network"
tell window "Network"
tell sheet 1
tell tab group 1
click radio button "TCP/IP"
set contents of text field 2 to ipAddress
end tell
end tell
end tell
end tell
end tell
除了这个陈述之外,一切都很好。
“将文本字段2的内容设置为 ip地址“
我收到以下错误:
错误“系统事件出错: 无法设置文本字段2的内容 窗口第1页的选项卡组1 进程“系统”的“网络” 首选项\“到\”192.168.110.48 \“。” 数字-10006来自文本内容 第1页表1第1栏第2栏 窗口“网络”的过程“系统 喜好” 我使用UIBrowser检查了UI元素,所以我确信我使用的是正确的元素。 是什么导致了这个问题?还能告诉一个更好的方法来写同样的东西吗?
答案 0 :(得分:1)
更改IP的替代解决方案是使用“网络”窗格的网络位置功能并使用预定义的位置。
如果单击顶部“系统偏好设置”中的“网络”面板,您将看到一个名为“位置”的下拉菜单。单击它并选择编辑位置...
然后,您可以创建新位置并配置接口,无论是以太网,机场,火线,3G卡等。您可以为同一界面设置多个位置。因此,您可以拥有IP为192.168.2.2的以太网位置,然后您可以将另一个设置为192.168.2.3,依此类推......
创建并标记所有新位置后,您可以使用AppleScript在它们之间切换。
要在AppleScript中获取当前网络位置,请使用以下代码:
set currentLocation to do shell script "networksetup -getcurrentlocation"
要选择新位置,请使用以下AppleScript代码:
set newLocationName to "whatever location you want to choose"
do shell script "scselect " & newLocationName with administrator privileges
使用上述方法,您可以创建多个预定义的网络位置,并使用AppleScript轻松切换它们。此外,您可以创建一个随机函数,该函数将从填充了您所有位置的AppleScript列表中随机选择。
答案 1 :(得分:0)
使用networksetup shell脚本手动设置您的IP:
do shell script "networksetup -setmanual Ethernet 192.168.110.48
255.55.255.0 192.168.110.1 password YOURPASSWORD with administrator privileges"
返回DHCP:
do shell script "networksetup -setdhcp Ethernet YOURPASSWORD
with administrator privileges"
当然,您可以操纵字符串以使用变量并将“以太网”更改为任何界面(如Wi-Fi)。
答案 2 :(得分:0)
这是关键字错误。
set contents of text field 2 to ipAddress
是不正确的命令
正确的命令是
set value of text field 2 to ipAddress
尽情享受吧!