0

我正在编写一个小脚本,每天从http://reddit.com/r/wallpapers检索一张新图片,并将其设置为我的壁纸。当我从命令行调用脚本时,它运行良好。但是,一旦我尝试设置启动守护程序,它就会保存图片,但桌面不会改变。我希望它与范围有关,但我不知道从哪里开始。

代码:

SCRIPT = """/usr/bin/osascript<<END
tell application "Finder"
set desktop picture to POSIX file "%s"
end tell
END"""

file_path = /some/file/the/script/downloaded.jpg

subprocess.Popen(SCRIPT%file_path, shell=True)
4

1 回答 1

0

您可能对原因是正确的,但是我在应用程序中使用“POSIX 文件”命令告诉代码块时看到了奇怪的事情。“POSIX 文件”是一个 applescript 命令。您会在“标准添加”applescript 字典而不是 Finder 的 applescript 字典中找到它。因此,当您告诉 Finder 执行该命令时可能会出现问题,因为 Finder 不知道该命令。

一般的 applescript 规则是,您不应该告诉应用程序执行不在其 applescript 字典中的操作……如果您这样做,可能会发生奇怪的事情。你有一件奇怪的事情发生了,所以第一步是确保你的代码尽可能干净。

所以这里有一些东西可以尝试。如前所述,我只是在猜测,因为我以前见过这个问题,所以值得一试。试试这个作为你的applescript代码。

set p to POSIX file "%s"
tell application "Finder" to set desktop picture to p
于 2013-09-14T21:52:51.850 回答