我想做一个MacBook Pro Retina自动切换分辨率的AppleScript。
在互联网上搜索"applescript系统首选项“,我偶然发现了a page,其中显示了一些首选项。作为缩放分辨率的新事物,它没有文档记录。
这给我的AppleScript带来了一个更大的问题(请记住,除了复制-粘贴一些我从未真正在其中编程过的东西)。例如,告诉我系统首选项对象实际上被称为“系统首选项”的文档在哪里,它有名为“窗格”的对象,它们有一个id,以及暴露id是"com.apple.preference.expose"?
似乎每个程序都必须有某种“秘密”文档,而且它们必须是巨大的,映射所有的对象层次结构和可能的操作。最后,AppleScript核心是最小的,您所要做的就是操纵这样的程序。但是它们在哪里被记录下来呢?
发布于 2012-07-28 19:18:05
我觉得你说的很对。每个程序都有自己的applescript文档。它被称为applescript字典。您可以通过以下任一项查看任何应用程序的字典...
1)在AppleScript编辑器的“文件”菜单下,选择“打开字典...”。你可以从那里选择一个应用程序,它将显示它的字典。
2)将应用程序拖放到AppleScript编辑器的图标上。
3)有一个用于快速访问的常用字典列表。在AppleScript编辑器的窗口菜单下,选择“库”。您可以双击该列表中的应用程序。您还可以修改该列表以包含列表中所需的词典。
祝好运。
发布于 2013-04-29 16:56:38
您可以让AppleScript告诉您每个窗格的ids。
tell application "System Preferences" to get the id of every pane这特别方便,因为它将告诉您已安装的任何第三方首选项窗格的it。例如,我能够计算出我的微软自然键盘的窗格名为com.microsoft.microsoftkeyboard
我还没有真正探索过这些,但我希望有类似的语法来标识任何可脚本化应用程序中的对象。
发布于 2018-03-23 23:05:07
我有另一个问题,但你可以看看我的问题,因为在我的脚本中有一些关于你的问题的提示
HOW TO: display a check mark, disable a menu item, refresh a menubar
例如:
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
end tell此代码应直接将您置于系统首选项的分辨率首选项中。
然后,您可以编写代码来恢复窗格的所有UI元素,以便您现在就可以触发哪个操作。类似这样的东西也应该可以工作:
tell application "System Events"
tell application process "System Preferences"
set frontmost to true
delay 1
return every UI element of front window
return name of every UI element of front window
end tell结束讲述
希望能有所帮助
https://stackoverflow.com/questions/11700006
复制相似问题