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 曲目变化?

AppleScript中缺少值的Javascript(用于在Safari中单击按钮)

AppleScript-将文本从RGB转换为CMYK颜色值

在 AppleScript 中移动和合并文件夹

基于协同增量支持向量机的网络入侵检测