Applescript может перечислить все заявления, помещенные в док?

Я не могу разработать, как перечислить все Заявления, которые пользователь поместил в док.

Действительно ли это возможно?

0
nl ja de

2 ответы

Попробуйте это. Это - список приложений, которые человек имеет, которые являются постоянными в доке. То, что я в основном сделал, является системными событиями использования, чтобы прочитать plist файл в отчет applescript в pListItems переменной. Тогда я могу использовать applescript методы, чтобы получить доступ к спискам и отчетам в pListItems.

Есть большая информация в com.apple.dock, таким образом, можно посмотреть на pListItems переменную и проложить себе путь через нее, чтобы выйти независимо от того, что вам нужно. Например, вы могли бы хотеть "|bundle-идентификатор |" вместо "|file-этикетки |".Good luck.

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
2
добавлено
Потрясающий.That is exactly what I want. Слова благодарности.
добавлено автор dompardoe, источник

Adding on to the response by regulus6633 As suggested, using |bundle-identifier| does make for more reliable results in this script. For example, Evernote will not correctly identify in all AppleScript uses by using the |file-label| property due to both Evernote.app and EvernoteHelper.app having the same short name (CFBundleName).

Additional idea I used this script as a basis for one that start all applications that are permanently placed in the dock ('Keep in dock' option). I removed the dockAppsList array and replaced the second loop to activate all these applications. To avoid having windows splattered all over my screen, I maintain appName and use it to hide them right after activating the application.

Чтобы приспособиться, замените код после , конец говорит заявление со следующим:

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
2
добавлено