gpt4 book ai didi

applescript - 在 AppleScript 中等待直到 Photoshop 文档关闭?

转载 作者:行者123 更新时间:2023-12-04 03:09:35 25 4
gpt4 key购买 nike

我为预览制作了一个脚本,它运行良好。它打开图像,然后等待预览中的文档关闭。

之后我在 Photoshop 中尝试了同样的操作,但它在那里不起作用:

tell application "Finder"
try
set appID to application file id "com.adobe.Photoshop"
--set appID to application file id "com.apple.Preview"
on error errMsg
set appID to 0
end try
end tell
tell application "Finder" to set appName to name of appID
tell application appName
run
activate
set fileHandle to open POSIX file pngFile as alias
repeat
-- exit repeat
try
get name of fileHandle
on error
exit repeat
end try
delay 1 -- delay in seconds
end repeat
end tell
display dialog "Document is closed now"

有什么想法出了什么问题,或者如果某个文件仍然打开,如何在 Photoshop 中检查更好?

最佳答案

如果您想打开一个文件并延迟到该文件在 Photoshop 中实际打开,那么您的代码就会遇到一些问题。首先,如果要按照您的想法工作,那么您的“exit repeat”行在错误的位置。它不应该在 try block 的“出错”部分。 repeat 循环和 try block 的目的是等到您可以毫无错误地获取文件名...意味着文件已打开...然后退出 repeat。所以你的重复循环应该是这样的......

repeat
try
get name of fileHandle
exit repeat
end try
delay 1 -- delay in seconds
end repeat

但是您的代码中还有其他错误,因此即使进行了该修复,它仍然无法正常工作。一个大错误是 fileHandle。 Photoshop 的打开命令不会返回对文件的引用,因此当您“获取文件句柄的名称”时无论如何都会出错,因为没有文件句柄。

这是我编写代码的方式。您不需要任何 Finder 的东西,您当然不应该将 Photoshop 代码放在 Finder 代码中。无论如何,试试这个。希望对您有所帮助。

set filePath to (path to desktop as text) & "test.jpg"

set fileOpen to false
tell application id "com.adobe.Photoshop"
activate
open file filePath

set inTime to current date
repeat
try
set namesList to name of documents
if "test.jpg" is in namesList then
set fileOpen to true
exit repeat
end if
end try
if (current date) - inTime is greater than 10 then exit repeat
delay 1
end repeat
end tell
return fileOpen

关于applescript - 在 AppleScript 中等待直到 Photoshop 文档关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23251469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com