如何判断菜单项是否被“选中”?

Aar*_*ron 4 macos applescript

我正在构建一个 Applescript,它将每 X 分钟扫描一次我的网络,检查我家的 Xbox360 或 PS3,并在任一控制台在线时启用我的传输 BitTorrent 客户端限速模式。

目前我只能使用 applescript 暂停所有传输或恢复所有传输,因为启动/停止传输有单独的键盘命令。我希望它进入限速模式,而不是完全停止。

我的问题是限速(海龟)模式是打开/关闭它的同一个键。如果有人手动触摸速度限制,它将不同步,并且在控制台上线时实际上会关闭速度限制。此外,如果一个控制台上线,速度限制将开启,但如果另一个控制台上线,则限制将关闭。

当速度限制处于活动状态时,菜单项变为“已检查”,但我不知道如何对此进行测试。传输应用程序的applescript 字典中没有任何内容。

如何确定 Applescript 中的菜单项是否被“选中”(它甚至显示了一个实际的复选标记)?

[编辑:]我目前正在尝试弄清楚如何通过 RPC 打开速度限制,而不是尝试使用 GUI 或键盘命令编写脚本,因为开发人员不提供任何 Applescript 访问。 http://trac.transmissionbt.com/browser/trunk/doc/rpc-spec.txt

Dov*_*Dov 5

我遇到了完全相同的问题,最后想出了如何检查传输的速度限制菜单项是否被选中(您可以轻松修改它以检查其他应用程序中的菜单项)。这已经死了将近一年了,但希望这会有所帮助。

tell application "Transmission" to activate

tell application "System Events"
    tell process "Transmission"
        set speedLimitCurrentlyOn to (value of attribute "AXMenuItemMarkChar" of menu item "Speed Limit" of menu "Transfers" of menu bar 1 as string) ? ""

        display dialog "Speed Limit On: " & speedLimitCurrentlyOn
    end tell
end tell
Run Code Online (Sandbox Code Playgroud)

PS:我从这里的 AppleScript 改编了这个:http : //mac.softpedia.com/progDownload/Transmission-Auto-Speed-Limit-Download-60275.html