5

现在,我使用提示命令作为一种解决方法,在 Photoshop 中从我的 JSX 脚本中复制任意文本。

prompt("to copy",(horizontalcenter.toString()) + ", " + verticalcenter.toString());

这给了我想要的信息。“要复制”只是给出了标题,那么我要从Photoshop中复制出来的信息就在已经选中的提示框中。所以我所要做的就是点击控制C,转到我需要这些信息的Notepad++,然后点击控制V。

它可以工作,但它可能会更快。必须有一种方法可以将这些信息从 Photoshop 中直接复制到剪贴板,不是吗?

4

2 回答 2

6

Photoshop 13.1(Photoshop CS6 的最新 Creative Cloud 版本)现在有一个挂钩,可让您直接执行此操作。这是一个示例函数:

function copyTextToClipboard( txt )
{
    const keyTextData         = app.charIDToTypeID('TxtD');
    const ktextToClipboardStr = app.stringIDToTypeID( "textToClipboard" );

    var textStrDesc = new ActionDescriptor();

    textStrDesc.putString( keyTextData, txt );
    executeAction( ktextToClipboardStr, textStrDesc, DialogModes.NO );
}

请注意,这在 13.1 之前的 Photoshop 版本中不起作用

于 2012-12-21T01:54:40.413 回答
5

在 Photoshop 脚本论坛上找到了答案。

http://ps-scripts.com/bb/viewtopic.php?f=9&t=3097&p=15324&hilit=clipboard&sid=1b1cc023023b9f91ab46e30e48e2ab53#p15324

function copyTextToClipboard(text)
{
   var folderForTempFiles = Folder.temp.fsName;

   // create a new textfile and put the text into it
   var clipTxtFile =new File(folderForTempFiles + "/ClipBoard.txt"); 
   clipTxtFile.open('w'); 
   clipTxtFile.write(text); 
   clipTxtFile.close();

   // use the clip.exe to copy the contents of the textfile to the windows clipboard
   var clipBatFile =new File(folderForTempFiles + "/ClipBoard.bat"); 
   clipBatFile.open('w'); 
   clipBatFile.writeln("cat \"" + folderForTempFiles + "/ClipBoard.txt\"|clip"); 
   clipBatFile.close(); 
   clipBatFile.execute();
}

它将您要复制的文本放在临时文本文件中,然后从该文本文件中复制它。我什至不知道您可以将文本放入文本文件中。显然 Photoshop 中的 javascript 功能比我想象的要强大得多!

于 2010-11-03T05:51:44.027 回答