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 

замена уже существующего...

В проблемах установить путь и заставить его работать


person Andrea Xd    schedule 17.10.2012    source источник


Ответы (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
person regulus6633    schedule 17.10.2012
comment
На самом деле этот скрипт не копирует никаких файлов :/ - person Andrea Xd; 22.10.2012
comment
Возможно, вам следует предоставить более подробную информацию, потому что явно строка кода cp do shell script предназначена для копирования файла. Поэтому немного исправьте код и выясните, почему он не делает то, что вам нужно. Я не могу помочь без дополнительных объяснений с вашей стороны. - person regulus6633; 22.10.2012
comment
мне тоже скрипт кажется нормальным...конечно там нет linen.tiff поэтому я не понимаю как NC должен его подцепить? - person Daij-Djan; 26.01.2014