我用subprocess执行动作的时候未获得授权将Apple事件发送给Adobe Photoshop 2022。 (-1743)
时间: 2024-03-03 18:52:05 浏览: 16
这个错误通常是由于安全和隐私设置导致的。在 macOS 上,你需要在系统偏好设置中对应用程序的隐私设置进行授权。请按照以下步骤操作:
1. 打开“系统偏好设置”并点击“安全性与隐私”选项。
2. 选择“隐私”选项卡。
3. 在左侧面板中选择“自动化”。
4. 在右侧的应用程序列表中,找到“Adobe Photoshop 2022”,并确保其旁边的复选框被选中。
5. 重新运行你的代码并查看是否仍然有问题。
如果上述步骤没有解决问题,请确保你的 Photoshop 版本支持 Apple 事件,并且你的代码中已经正确设置了事件。你也可以尝试使用 AppleScript 而不是 subprocess 来执行操作,这通常可以避免授权问题。例如,在 Python 中使用以下代码来执行一个 AppleScript:
```python
import os
script = 'tell application "Adobe Photoshop 2022" to activate'
os.system(f"osascript -e '{script}'")
```
这将激活 Photoshop。你可以修改 AppleScript 以执行其他操作。
相关问题
还是:未获得授权将Apple事件发送给Adobe Photoshop 2022。 (-1743
如果你已经在“自动化”设置中授权了 Photoshop,但仍然遇到了这个错误,那么可能是因为你的 Python 脚本没有获得足够的权限来操作 Photoshop。
你可以尝试使用 sudo 来运行脚本,以获得更高的权限。例如,在终端中使用以下命令来运行你的 Python 脚本:
```
sudo python3 your_script.py
```
这将使用超级用户权限来运行脚本,从而可能解决授权问题。请注意,使用 sudo 需要谨慎,因为它可以使你的脚本具有执行任意命令的能力。
如果 sudo 也不能解决问题,请确保你的 Photoshop 版本支持 Apple 事件,并且你的代码中已经正确设置了事件。你也可以尝试使用 AppleScript 而不是 subprocess 来执行操作,这通常可以避免授权问题。
python用subprocess执行多个photoshop动作
可以使用Python的subprocess模块来执行多个Photoshop动作。首先,需要用Photoshop的COM对象来控制Photoshop,可以使用win32com模块来实现。
下面是一个示例代码,用Python控制Photoshop打开一张图片并执行两个动作(转换为黑白和添加水印):
```python
import win32com.client
import subprocess
# 打开Photoshop
subprocess.call(["C:\Program Files\Adobe\Adobe Photoshop CC 2019\Photoshop.exe"])
# 等待Photoshop打开
time.sleep(5)
# 获取Photoshop应用程序
app = win32com.client.Dispatch("Photoshop.Application")
# 打开一张图片
doc = app.Open(r"C:\path\to\image.jpg")
# 执行黑白动作
doc.Action("Black and White")
# 执行添加水印动作
doc.Action("Add Watermark")
# 保存并关闭文档
doc.Save()
doc.Close()
```
这里用subprocess模块打开Photoshop,然后用win32com模块获取Photoshop应用程序和打开的文档对象,最后执行动作并保存关闭文档。