Applescript 值增量检测
Posted
技术标签:
【中文标题】Applescript 值增量检测【英文标题】:Applescript value increment detection 【发布时间】:2021-07-01 18:33:51 【问题描述】:我正在使用 midi 消息通过 MidiPipe 触发 Applescript 命令。 Midi 消息包含 3 项,我想在第三项的值递增 +1 时触发命令
if (item 1 of message = 176) then
if (item 2 of message = 97) then
if (item 3 of message + 1) then -- this doesn't work
tell application "System Events"
key code 126
当我想要的值固定但我不知道如何检测正增量或负增量(范围 0-127)时它可以工作
【问题讨论】:
【参考方案1】:AppleScript 没有这样的自动功能。您可以跟踪以前的值是什么,与现在的值进行比较/更新,并采取适当的措施。您没有提及脚本的调用方式或您保留的任何状态,但您的 sn-p 将类似于:
property previous : missing value -- keep track of the previous value
if previous is missing value then set previous to item 3 of message -- initial value
-- other stuff
if item 1 of message = 176 then
if item 2 of message = 97 then
set change to (item 3 of message) - previous -- get any difference
if change < 0 then set change to -change -- absolute value
if change is not 0 and change = 1 then -- or whatever threshold comparison
set previous to item 3 of message -- update
tell application "System Events"
key code 126
-- other stuff
end tell
end if
end if
end if
我没有要测试的 MidiPipe,但如果脚本不保留持久属性,您将需要执行诸如从文件读取或使用 NSUserDefaults
来保留值运行之间的previous
变量。
【讨论】:
以上是关于Applescript 值增量检测的主要内容,如果未能解决你的问题,请参考以下文章
Charles 和 AppleScript(Accessibility Inspector 中的缺失值)
监控 Applescript 中的 Spotify 曲目变化?