Вы можете только await
обещание.
decrypt.upload
не возвращает обещание.
Замените его обещанием.
Этот вопрос охватывает преобразование функции, которая принимает обратный вызов, к функции, которая возвращает обещание.
Начиная с Индивидуалистов, Apple пишет Рисунки рабочего стола в
/Users/<current-user>/Application Support/Dock/desktoppicture.db
который является базой данных SQLite. Можно открыть этот файл в Терминале как это
sqlite3 "/Application Support/Dock/desktoppicture.db"
и затем выполненный следующий ВЫБОР:
SELECT display_uuid,space_uuid,value
FROM preferences
JOIN data ON preferences.data_id=data.ROWID
JOIN pictures ON preferences.picture_id=pictures.ROWID
JOIN displays ON pictures.display_id=displays.ROWID
JOIN spaces ON pictures.space_id=spaces.ROWID ;
Вывод будет
<UID1>|<UID2>|<PicturePath>
<UID1>|<UID2>|<PicturePath>
:
UID1
UID дисплея (например, дисплей Вашего MacBook, внешнего дисплея, и т.д. поскольку каждый дисплей может иметь собственное фоновое изображение), UID2
является дополнительным (иногда, это отсутствует, который, вероятно, означает все пробелы того дисплея), и это - UID пространства (каждый дисплей на OS X может иметь несколько пробелов, и каждое пространство может иметь собственное фоновое изображение), и <PicturePath>
путь к изображению (для этого определенного пространства на этом определенном дисплее).
Конечно, можно связать Приложение против библиотеки SQLite и сделать все, что с вызовами библиотеки, но как использовать SQLite и синтаксис SQL для запросов и данных обновления, конечно, путь вне объема этого ответа. Всего одна подсказка: Вы выходите sqlite
клиент путем ввода .exit
(отметьте ведущий период!) и хит входят (CTRL+C не будет работать).
Просто еще одно примечание: можно обновить базу данных в приложении, но это не будет иметь никакого эффекта, поскольку Прикрепление не будет знать об этом (Вы изменяете его за его спиной). Для создания Прикрепления, знающего о том изменении, Вы имеете, уничтожают его как killall Dock
, может быть достаточно просто ПОНУКНУТЬ его (killall -HUP Dock
), который действительно не уничтожит его (я не протестировал это). В рамках приложения необходимо было бы найти идентификатор процесса Прикрепления и отправить ему сигнал (это - то же это killall
делает), получение идентификаторов процесса и отправка сигналов также выходят за рамки того ответа.
Вы на правильном пути. Если Вы пишете приложение в Углероде/Какао, просто загружаете предпочтительный файл. Это расположено в
/Users/<current-user>/Library/Preferences/com.apple.desktop.plist
Словарь содержит подсловарь с ключом default
и этот sub словарь содержит ключ ImageFilePath
, содержа полный путь к файлу изображения.