gpt4 book ai didi

applescript - 加速 AppleScript UI 脚本?

转载 作者:行者123 更新时间:2023-12-04 02:48:01 25 4
gpt4 key购买 nike

我将 NetShade 用作代理服务,并认为我可以尝试自动在不同代理之间切换,作为我的第一个 AppleScript 脚本的良好开端。

NetShade 应用程序不支持 AppleScript,所以我必须使用 UI 脚本。经过几次尝试(和这里的一些帖子)后,我设法有了一个脚本,它通过菜单栏项切换代理(这里是它的 picture,因为由于声誉限制我无法内联发布它)。

不幸的是,我的代码非常慢(≈6 秒),这使得它作为脚本有点不切实际。第一个菜单立即打开,但子菜单和代理服务器的选择需要几秒钟。

我正在使用以下代码:

set theProxy to "Netshade US 4"
tell application "System Events" to tell process "NetShade"
tell menu bar item 1 of menu bar 2
click
tell menu item "NetShade Proxy" of menu 1
click
tell menu item theProxy of menu 1
click
end tell
end tell
end tell
end tell

我已经尝试添加 ignoring application responses,就像在另一个线程 ( link ) 中建议的那样,但这没有帮助。

最后我的问题是:有没有办法加快这个过程?甚至可以在不显示菜单项的情况下在后台执行所有这些操作?

附言:我正在运行 OS X 10.9.1

最佳答案


修复总结

要消除延迟,您需要做两件事:

(I) 识别导致延迟的点击并仅将该行包含在 ignoring application responses block 中,如下所示。在我的例子中,是 click bt 之后执行进入等待模式 5 到 6 秒。

  ignoring application responses
click bt
end ignoring

(II) 然后我还必须使用以下命令终止系统事件并重新启动它。

  do shell script "killall System\\ Events"
delay 0.1
-- Rest of the code to click stuff or send keycodes

这解决了延迟问题。


详情

我在创建脚本以通过 AppleScript 连接/断开蓝牙耳机时遇到了同样的问题。脚本如下。

tell application "System Events" to tell process "SystemUIServer"
set bt to (first menu bar item whose description is "bluetooth") of menu bar 1
click bt
tell (first menu item whose title is "SBH80") of menu of bt
click
tell menu 1
if exists menu item "Disconnect" then
click menu item "Disconnect"
else
click menu item "Connect"
end if
end tell
end tell
end tell

脚本工作正常,但有一个问题,在执行上面的“click bt”后,它会等待 5 到 6 秒。我按如下方式修改了代码,现在它工作得非常好,没有任何延迟。

tell application "System Events" to tell process "SystemUIServer"

set bt to (first menu bar item whose description is "bluetooth") of menu bar 1
ignoring application responses
click bt
end ignoring
end tell

do shell script "killall System\\ Events"
delay 0.1
tell application "System Events" to tell process "SystemUIServer"

tell (first menu item whose title is "SBH80") of menu of bt
click
tell menu 1
if exists menu item "Disconnect" then
click menu item "Disconnect"
else
click menu item "Connect"
end if
end tell
end tell
end tell

关于applescript - 加速 AppleScript UI 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21270264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com