AppleScripting приложение для изменения фона Центра уведомлений в OSX 10.8
Вот мой код:
set NCBGPath to path ("Machintosh hd:System:LIbrary:Core Services:Notification Center:Contents:Resources")
set NCBackground to {"linen.tiff"}
set themeFolder to choose folder with prompt "Choose a Theme"
tell application "Finder"
if exists file (themeFolder & NCBackground) then
copy file (themeFolder & NCBackground) to NCGBPath
end if
end tell `
Что мне нужно изменить, чтобы это работало? Это должно позволить вам выбрать папку, если в этой папке есть файл с именем linen.tiff
затем скопируйте этот файл в заданный путь:
/System/Library/CoreServices/Notification Center/Contents/Resources
заменить тот, который уже существует...
В проблемах, устанавливая путь и заставляя его работать
1 ответ
Кажется, у тебя все твои пути испорчены. Вы просто не используете их правильно. Также в Finder нет команды "копировать". У этого есть "дублирующаяся" команда все же. Однако, поскольку вы выполняете дублирование в ограниченном месте, я бы вместо этого использовал команду оболочки cp и запустил ее с "правами администратора".
Поэтому приведенный ниже код будет делать то, что вы пытаетесь сделать (я не проверял это). Однако я сомневаюсь, что это хорошая идея, и не знаю, сработает ли она вообще. Обычно простая замена файла не приводит к изменениям, которые вы ожидаете, без перезапуска центра уведомлений. Кроме того, как я упоминаю в коде, у вас будет проблема с правами доступа к файлам. Файлы в этой папке имеют особые разрешения, которых не будет иметь ваш скопированный файл. Наконец, не стоит трогать вещи в каталоге /System.
С учетом всего сказанного, если вы все еще хотите продолжить, попробуйте.
set NCBGPath to "/System/Library/CoreServices/Notification Center/Contents/Resources/"
set NCBackground to "linen.tiff"
set themeFolder to (choose folder with prompt "Choose a Theme") as text
set themePath to themeFolder & NCBackground
set posixNCPath to NCBGPath & NCBackground
set shouldCopy to false
tell application "Finder"
if exists file themePath then set shouldCopy to true
end tell
if shouldCopy then
do shell script "cp " & quoted form of POSIX path of themePath & space & quoted form of posixNCPath with administrator privileges
-- you probably should correct the file permissions too as the copied file probably won't have the proper owner and stuff
else
display dialog "Could not find the background file in the chosen folder."
end if