**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
这个问题似乎与help center中定义的范围内的编程无关。
3天前关闭。
Improve this question
我如何从我的C应用程序内部运行Adobe Extend Scripts?我有一个工作JSX文件,如果我打开After Effects项目并运行脚本,它可以完成我需要的工作。
我基本上是在使用C的after effects项目上调用JSX脚本。
我问了ChatGPT这个问题(多么现代的我),它提到了以下代码:
#include <iostream>
#include "extendscript.h"
int main()
{
// Create an instance of the ExtendScript object
ExtendScript script;
// Load the ExtendScript script file
if (!script.LoadScriptFile("myscript.jsx"))
{
std::cerr << "Failed to load script file" << std::endl;
return 1;
}
// Set the 'this' property of the ExtendScript object to the current After Effects project
script.SetThisProperty(app.project);
// Execute the script
if (!script.EvaluateScript())
{
std::cerr << "Failed to evaluate script" << std::endl;
return 1;
}
// Retrieve the project name from the script
ExtendScriptValue result = script.GetGlobalProperty("projectName");
// Print the project name
std::cout << "The project name is: " << result.ToString() << std::endl;
return 0;
}
这看起来很酷,但我在网上找不到任何与上述API调用匹配的东西,也找不到任何方法来找到这个难以捉摸的“extendscript. h”文件。
这完全有可能是ChatGPT编造的,给了我虚假的希望。
1条答案
按热度按时间dsekswqp1#
因此,我找到了一个解决方法,即在C++代码中运行两个终端命令,并在第二个命令上执行条件执行(&&)。
第一个terminal命令打开.aep文件:
第二个终端命令(使用AppleScripts)运行JSX文件:
因此,要在C++内部运行它们:
它打开AE项目,等待该操作完成,然后在该项目上运行脚本。
我相信你还可以补充:
如果您希望AE在脚本运行后关闭,请将其添加到JSX。
也可能有一个--noui标记,可以在某个地方使用,这样您就不需要“看到”它被打开和运行,但我还没有弄清楚这一点。
如果有人有更好的解决办法,请告诉我!