Applescript能否列出放置在dock中的所有应用程序?

Applescript能否列出放置在dock中的所有应用程序?,applescript,dock,Applescript,Dock,我不知道如何列出用户放置在dock中的所有应用程序 这可能吗?试试这个。这是一个人在dock中持久存在的应用程序列表。我基本上做的是使用系统事件将plist文件读入plistems变量中的applescript记录。然后我可以使用applescript技术访问pListItems中的列表和记录 com.apple.dock中有很多信息,因此您可以查看pListItems变量,并通过它提取您需要的任何内容。例如,您可能需要“|包标识符|”而不是“|文件标签|”。祝你好运 set plistpath

我不知道如何列出用户放置在dock中的所有应用程序


这可能吗?

试试这个。这是一个人在dock中持久存在的应用程序列表。我基本上做的是使用系统事件将plist文件读入plistems变量中的applescript记录。然后我可以使用applescript技术访问pListItems中的列表和记录

com.apple.dock中有很多信息,因此您可以查看pListItems变量,并通过它提取您需要的任何内容。例如,您可能需要“|包标识符|”而不是“|文件标签|”。祝你好运

set plistpath to (path to preferences folder as text) & "com.apple.dock.plist"

tell application "System Events"
    set plistContents to contents of property list file plistpath
    set pListItems to value of plistContents
end tell
set persistentAppsList to |persistent-apps| of pListItems

set dockAppsList to {}
repeat with thisRecord in persistentAppsList
    set end of dockAppsList to |file-label| of |tile-data| of thisRecord
end repeat

return dockAppsList

试试这个。这是一个人在dock中持久存在的应用程序列表。我基本上做的是使用系统事件将plist文件读入pListItems变量中的applescript记录。然后我可以使用applescript技术访问pListItems中的列表和记录

com.apple.dock中有很多信息,因此您可以查看pListItems变量,并通过它提取您需要的任何内容。例如,您可能需要“|包标识符|”而不是“|文件标签|”。祝你好运

set plistpath to (path to preferences folder as text) & "com.apple.dock.plist"

tell application "System Events"
    set plistContents to contents of property list file plistpath
    set pListItems to value of plistContents
end tell
set persistentAppsList to |persistent-apps| of pListItems

set dockAppsList to {}
repeat with thisRecord in persistentAppsList
    set end of dockAppsList to |file-label| of |tile-data| of thisRecord
end repeat

return dockAppsList

按照建议,通过regulus6633添加响应,使用
| bundle identifier |
确实可以在该脚本中获得更可靠的结果。例如,由于Evernote.app和EvernoteHelper.app具有相同的短名称(
CbundLename
),Evernote无法通过使用
| file label
属性在所有AppleScript使用中正确识别

其他想法我使用此脚本作为启动所有永久放置在dock中的应用程序的基础(“保持在dock”选项)。我删除了dockAppsList数组并替换了第二个循环来激活所有这些应用程序。为了避免窗口溅满我的屏幕,我维护了appName,并在激活应用程序后立即使用它来隐藏它们

要进行调整,请将
end tell
语句后的代码替换为以下内容:

repeat with thisRecord in |persistent-apps| of pListItems
set appName to |file-label| of |tile-data| of thisRecord
set appID to |bundle-identifier| of |tile-data| of thisRecord
tell application id appID to activate
tell application "Finder" to set visible of process appName to false
end repeat

按照建议,通过regulus6633添加响应,使用
| bundle identifier |
确实可以在该脚本中获得更可靠的结果。例如,由于Evernote.app和EvernoteHelper.app具有相同的短名称(
CbundLename
),Evernote无法通过使用
| file label
属性在所有AppleScript使用中正确识别

其他想法我使用此脚本作为启动所有永久放置在dock中的应用程序的基础(“保持在dock”选项)。我删除了dockAppsList数组并替换了第二个循环来激活所有这些应用程序。为了避免窗口溅满我的屏幕,我维护了appName,并在激活应用程序后立即使用它来隐藏它们

要进行调整,请将
end tell
语句后的代码替换为以下内容:

repeat with thisRecord in |persistent-apps| of pListItems
set appName to |file-label| of |tile-data| of thisRecord
set appID to |bundle-identifier| of |tile-data| of thisRecord
tell application id appID to activate
tell application "Finder" to set visible of process appName to false
end repeat

令人惊叹的这正是我想要的。谢谢,太棒了。这正是我想要的。谢谢你。