Глобальные настройки приложения AppleScript - PullRequest
2 голосов
/ 05 мая 2011

Можно ли сохранить какие-то настройки для приложения, созданного в AppleScript?

Настройки должны быть загружены в начале скрипта и сохранены в конце скрипта.

Пример:

if loadSetting("timesRun") then
    set timesRun to loadSetting("timesRun")
else
    set timesRun to 0
end if
set timesRun to timesRun + 1
display dialog timesRun
saveSetting("timesRun", timesRun)

Где диалоговое окно будет отображать 1 при первом запуске сценария, 2 во второй раз ...

И функции loadSetting и saveSetting будут функциями iнеобходимо.

Ответы [ 3 ]

4 голосов
/ 05 мая 2011

Сценарий свойства являются постоянными, хотя сохраненное значение перезаписывается значением, указанным в сценарии, при каждом повторном сохранении сценария.Выполните:

property |count| : 0
display alert "Count is " & |count|
set |count| to |count| + 1

несколько раз, повторно сохраните его и запустите еще несколько.

Если вы хотите использовать систему по умолчанию, вы можете использовать команды do shell script "defaults ..."(при использовании Applescript Studio) default entry "propertyName" of user defaults.В Applescript Studio вы привязываете значения к пользовательским значениям по умолчанию .

3 голосов
/ 11 января 2014

Applescript поддерживает собственное чтение и запись списков через системные события:

use application "System Events" # Avoids tell blocks, note: 10.9 only

property _myPlist : "~/Library/Preferences/com.plistname.plist

set plistItemValue to get value of property list item "plistItem" of contents of property list file _myPlist
set plistItemValue to plistItemValue + 1

set value of property list item "plistItem" of contents of property list file _myPlist to plistItemValue

Единственная проблема с этим заключается в том, что он не может создать списки, поэтому, если существование списка не определено, вам нужно обернуть его при попытке .

try 
    set plistItemValue to get value of property list item "plistItem" of contents of property list file _myPlist
on error -1728 # file not found error
    do shell script "defaults write com.plistname.plist plistItem 0"
    set plistItemValue to get value of property list item "plistItem" of contents of property list file _myPlist
end try
3 голосов
/ 19 октября 2012

Это тоже хорошо работает (проверьте первый комментарий к подсказке):

http://hints.macworld.com/article.php?story=20050402194557539

Он использует систему "по умолчанию", и вы получите ваши предпочтения в ~ / Library / Preferences

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...