Copy link to clipboard
Copied
I have a script that runs on the document close event. It looks like the document close event doesn't fire when the application is closed while a document is open. I checked for an application close event in the Script listener log, but there wasn't an entry for it, and the document close event wasn't present either.
The script I'm making writes a file in the same folder as the opened document that indicates that the file is in use. Then when the document is closed, the lock file is removed. It works except when you close the application. There is no document closed event firing, so the documents just close and the application shuts down without any events firing.
Is there a way know when the application is closing?
I found a possible work around that would be a huge pain. The idea is about loading a custom external library that performs cleanup when it is automatically unloaded when Photoshop closes. This is the prototype for the function that would do the work:
void ESTerminate (void );
There is another work around that invloves some button that the user has to remember to click to close the application. That would be awkward and open to user error.
I just want the document closed event to fire before the application closes. Thanks for you help!
Event handlers in Photoshop are called after the event with normal javascript scripts. There isn't a close event because Photoshop is already closed so can't call the handler. And javascript runs with Photoshop as the host app so the event handler is destroyed when Photoshop closed.
You might want to look at writing an extension using the CS-SDK. At one time they were planning to offer both before and after event handlers.
Copy link to clipboard
Copied
Event handlers in Photoshop are called after the event with normal javascript scripts. There isn't a close event because Photoshop is already closed so can't call the handler. And javascript runs with Photoshop as the host app so the event handler is destroyed when Photoshop closed.
You might want to look at writing an extension using the CS-SDK. At one time they were planning to offer both before and after event handlers.
Copy link to clipboard
Copied
That's too bad. I don't feel like getting a whole build environment setup for CS just so I can get a pre-close event in Photoshop. I implemented a script that the user will run in order to close photoshop. I saved a shortcut to the script in "C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Presets\Scripts". The script closes each document and runs my event handler. Then it exits. Check it out, it seems to work:
#target photoshop
//user will run this script instead of hitting exit button
var MLAB_CUSTOM = new Folder($.getenv('MLAB_CUSTOM')).absoluteURI
var docs = app.documents
for(var i = docs.length-1; i >= 0; i--)
{
docs.close()
$.evalFile(MLAB_CUSTOM+"/Ps-FileLock/PsLock-OnDocClose.jsx")
}
photoshop.quit();
Find more inspiration, events, and resources on the new Adobe Community
Explore Now