【问题标题】:Launchd prevents script from changing desktop pictureLaunchd 阻止脚本更改桌面图片
【发布时间】:2013-09-14 20:11:45
【问题描述】:
我正在编写一个小脚本,每天从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)
【问题讨论】:
标签:
python
applescript
launchd
【解决方案1】:
您的原因可能是对的,但是我在应用程序中的“POSIX 文件”命令告诉代码块中看到了奇怪的事情。 “POSIX 文件”是一个 applescript 命令。您会在“标准添加”applescript 字典而不是 Finder 的 applescript 字典中找到它。因此,当您告诉 Finder 执行该命令时可能会出现问题,因为 Finder 不知道该命令。
一般的applescript 规则是,您不应该告诉应用程序执行不在其applescript 字典中的操作...如果您这样做,可能会发生奇怪的事情。并且您发生了一件奇怪的事情,因此第 1 步是确保您的代码尽可能干净。
所以这里有一些东西可以尝试。如前所述,我只是在猜测,因为我以前见过这个问题,所以值得一试。试试这个作为你的 applescript 代码。
set p to POSIX file "%s"
tell application "Finder" to set desktop picture to p