2

我正在尝试使用 AE Extendscript 将一些文本从 AE 复制到系统剪贴板。After Effects 没有直接在 Extendscript 中提供此功能。

我可以将文本放在文本层上,然后将其复制到剪贴板:

app.executeCommand(app.findMenuCommandId("Copy"));  

但要做到这一点,必须选择文本。可以通过以下方式完成:

app.executeCommand(app.findMenuCommandId("Select All"));   

但是,光标必须在该字段中才能起作用。

我正在尝试将光标放在 After Effects 中带有 Extendscript 的文本层文本字段中。反正我看不到这样做。

我已经设法使用 .bat 方法将变量的值复制到系统剪贴板,但这不适用于所有系统。最好的方法是真正留在AE内。

有谁知道如何控制 AE Extendscript 中的文本光标?

有任何想法吗?

4

3 回答 3

0

使用 vbs 脚本sendkeys怎么样?您可以创建脚本来执行 sendkeys 的事情(因为您不能在 javascript 中执行此操作),然后让您的 javascript 文件在适当的位置调用 vbs 脚本。

于 2013-06-30T21:24:04.697 回答
0

这是在 Extendscript 中起作用的:

//This works on Vista and Win 7,  XP requires the user to copy 'clip.exe' to the 'sys32' folder.
function copyTextToClipboard2(text)
{
   var folderForTempFiles = Folder.temp.fsName;
   //alert(folderForTempFiles)
   // 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("clip < " + folderForTempFiles + "/ClipBoard.txt"); 
   clipBatFile.close(); 
   clipBatFile.execute();
}

有没有人有苹果等价物?

于 2013-06-30T22:06:25.937 回答
0

我已经在 After Effects CC 的 mac 上对此进行了测试,效果很好:

text = 'Lets copy some 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();

system.callSystem("cat " + folderForTempFiles + "/ClipBoard.txt" + " | pbcopy");
于 2016-01-10T04:01:31.257 回答