我有一个小脚本我正在努力每天从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)
答案 0 :(得分:0)
你可能是正确的,但是我在应用程序中使用“POSIX文件”命令看到奇怪的事情告诉代码块。 “POSIX文件”是一个applescript命令。您可以在“标准添加”AppleScript字典中找到它,而不是Finder的Applecript字典。因此,当您告诉Finder执行该命令时可能会出现问题,因为Finder不知道该命令。
一般的应用规则是你不应该告诉应用程序做一些不在其AppleScript字典中的事情......如果你这样做会发生奇怪的事情。而且你发生了一件奇怪的事情,所以第1步是确保你的代码尽可能干净。
所以这里有一些尝试。如上所述,我只是在猜测,因为我之前已经看过这个问题,所以值得一试。试试这个作为你的AppleScript代码。
set p to POSIX file "%s"
tell application "Finder" to set desktop picture to p