Hi
I want to copy the content of a layer mask and paste it into a new layer
I am using script listener to record.
I consistently have the same error while trying to run the script i get from scriptlistener
error 8800 : General Photoshop error occurred. This functionality may not be available in this version of Photoshop. The command <unknown>
is not currently available
Line38
-> executeAction(idinvokeCommand, desc886, DialogModes.NO);)
I tried different way of doing it in Ps - it seems that it bugs when i try to "Select All" or "Copy"?
I am very beginner ,
using Ps 26
Here is one ex of one of the script i got from script listener :
Thank you for your help
// =======================================================
var idslct = charIDToTypeID( "slct" );
var desc884 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref182 = new ActionReference();
var idChnl = charIDToTypeID( "Chnl" );
var idChnl = charIDToTypeID( "Chnl" );
var idMsk = charIDToTypeID( "Msk " );
ref182.putEnumerated( idChnl, idChnl, idMsk );
desc884.putReference( idnull, ref182 );
var idMkVs = charIDToTypeID( "MkVs" );
desc884.putBoolean( idMkVs, false );
executeAction( idslct, desc884, DialogModes.NO );
// =======================================================
var idslct = charIDToTypeID( "slct" );
var desc885 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref183 = new ActionReference();
var idChnl = charIDToTypeID( "Chnl" );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref183.putEnumerated( idChnl, idOrdn, idTrgt );
desc885.putReference( idnull, ref183 );
var idMkVs = charIDToTypeID( "MkVs" );
desc885.putBoolean( idMkVs, true );
executeAction( idslct, desc885, DialogModes.NO );
// =======================================================
var idinvokeCommand = stringIDToTypeID( "invokeCommand" );
var desc886 = new ActionDescriptor();
var idcommandID = stringIDToTypeID( "commandID" );
desc886.putInteger( idcommandID, 1017 );
var idkcanDispatchWhileModal = stringIDToTypeID( "kcanDispatchWhileModal" );
desc886.putBoolean( idkcanDispatchWhileModal, true );
executeAction( idinvokeCommand, desc886, DialogModes.NO );
// =======================================================
var idsetd = charIDToTypeID( "setd" );
var desc888 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref184 = new ActionReference();
var idChnl = charIDToTypeID( "Chnl" );
var idfsel = charIDToTypeID( "fsel" );
ref184.putProperty( idChnl, idfsel );
desc888.putReference( idnull, ref184 );
var idT = charIDToTypeID( "T " );
var idOrdn = charIDToTypeID( "Ordn" );
var idAl = charIDToTypeID( "Al " );
desc888.putEnumerated( idT, idOrdn, idAl );
executeAction( idsetd, desc888, DialogModes.NO );
// =======================================================
var idinvokeCommand = stringIDToTypeID( "invokeCommand" );
var desc889 = new ActionDescriptor();
var idcommandID = stringIDToTypeID( "commandID" );
desc889.putInteger( idcommandID, 104 );
var idkcanDispatchWhileModal = stringIDToTypeID( "kcanDispatchWhileModal" );
desc889.putBoolean( idkcanDispatchWhileModal, true );
executeAction( idinvokeCommand, desc889, DialogModes.NO );
// =======================================================
var idcopy = charIDToTypeID( "copy" );
var desc890 = new ActionDescriptor();
var idcopyHint = stringIDToTypeID( "copyHint" );
desc890.putString( idcopyHint, """pixels""" );
executeAction( idcopy, desc890, DialogModes.NO );
// =======================================================
var idMk = charIDToTypeID( "Mk " );
var desc892 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref185 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
ref185.putClass( idLyr );
desc892.putReference( idnull, ref185 );
var idLyrI = charIDToTypeID( "LyrI" );
desc892.putInteger( idLyrI, 31 );
executeAction( idMk, desc892, DialogModes.NO );
// =======================================================
var idinvokeCommand = stringIDToTypeID( "invokeCommand" );
var desc893 = new ActionDescriptor();
var idcommandID = stringIDToTypeID( "commandID" );
desc893.putInteger( idcommandID, 105 );
var idkcanDispatchWhileModal = stringIDToTypeID( "kcanDispatchWhileModal" );
desc893.putBoolean( idkcanDispatchWhileModal, true );
executeAction( idinvokeCommand, desc893, DialogModes.NO );
// =======================================================
var idpast = charIDToTypeID( "past" );
var desc895 = new ActionDescriptor();
var idAntA = charIDToTypeID( "AntA" );
var idAnnt = charIDToTypeID( "Annt" );
var idAnno = charIDToTypeID( "Anno" );
desc895.putEnumerated( idAntA, idAnnt, idAnno );
var idAs = charIDToTypeID( "As " );
var idPxel = charIDToTypeID( "Pxel" );
desc895.putClass( idAs, idPxel );
executeAction( idpast, desc895, DialogModes.NO );
Error 8800:This functionality may not be available in this version of Photoshop
-
- Posts: 4
- Joined: Fri Nov 29, 2024 5:37 pm
Re: Error 8800:This functionality may not be available in this version of Photoshop
Remove 2 "invokeCommand" blocks and I believe it should work.
-
- Posts: 4
- Joined: Fri Nov 29, 2024 5:37 pm
Re: Error 8800:This functionality may not be available in this version of Photoshop
Hi Thank you for looking into it
I removed the 2 invoke command blocks
I now have an error on this line (LINE10)?
var idT = charIDToTypeID( "T" );
Error 1220:Illegal Argument
->var idT = charIDToTypeID( "T" );
I removed the 2 invoke command blocks
I now have an error on this line (LINE10)?
var idT = charIDToTypeID( "T" );
Error 1220:Illegal Argument
->var idT = charIDToTypeID( "T" );
Re: Error 8800:This functionality may not be available in this version of Photoshop
There should probably be 3 spaces between the T and the closing quote.
-
- Posts: 1
- Joined: Thu May 08, 2025 8:41 am
- Location: https://agargame.io
Re: Error 8800:This functionality may not be available in this version of Photoshop
- Avoid invokeCommand: Instead of relying on invokeCommand, you should use the select, copy, and paste commands explicitly supported through the Photoshop API. Here's a simple replacement:
Code: Select all
// Select mask channel
var idslct = charIDToTypeID( "slct" );
var desc = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("Chnl"), charIDToTypeID("Chnl"), charIDToTypeID("Msk ") );
desc.putReference( idnull, ref );
executeAction( idslct, desc, DialogModes.NO );
// Copy
executeAction( charIDToTypeID("copy"), undefined, DialogModes.NO );
// Create new layer
executeAction( charIDToTypeID("Mk "), undefined, DialogModes.NO );
// Paste into new layer
executeAction( charIDToTypeID("past"), undefined, DialogModes.NO );
- Step by step to test: You should run each command one by one in ExtendScript Toolkit or VS Code (with UXP plugin) to determine exactly which line is causing the error.
- Check access rights or modal states: Some commands cannot be executed when another dialog is open in Photoshop.