Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

ASERStudio::ASEREnv::ASERProgram Class

class ASERStudio::ASEREnv::ASERProgram

ASERProgram提供对ASE应用程序交互和基本属性的封装. 详情...

头文件: #include <ASERProgram>
自以下版本: ASERStudio 2.0

公开成员函数

(自 ASERStudio 2.0 引入) ASERProgram()
(自 ASERStudio 2.0 引入) ~ASERProgram()
(自 ASERStudio 2.0 引入) QString getExecutablePath() const
(自 ASERStudio 2.0 引入) qint64 getExitCode() const
(自 ASERStudio 2.0 引入) QStringList getLastArguments() const
(自 ASERStudio 2.0 引入) QString getLocalLowPath() const
(自 ASERStudio 2.0 引入) qint64 getProcessID() const
(自 ASERStudio 2.0 引入) QWindow *getProcessWindow() const
(自 ASERStudio 2.0 引入) QString getResourcePath() const
(自 ASERStudio 2.0 引入) QString getWorkingDirectory() const
(自 ASERStudio 2.0 引入) bool isRunning() const
(自 ASERStudio 2.0 引入) void setExecutablePath(const QString &path)
(自 ASERStudio 2.0 引入) void setWorkingDirectory(const QString &path)
(自 ASERStudio 2.0 引入) void start(const QStringList &arguments = QStringList())
(自 ASERStudio 2.0 引入) void start(const ASERStudio::ASEREnv::ASERProgramLaunchParameter &parameter, const QStringList &arguments = QStringList())
(自 ASERStudio 2.0 引入) void stop()
(自 ASERStudio 2.0 引入) bool waitStop(qint32 waitMS = 3000)
(自 ASERStudio 2.0 引入) void writeNamedPipe(const QString &context)

详细说明

ASERProgram类封装了与ASE应用程序的交互功能,包括启动和停止程序、 return 程序属性以及通过具名管道进行通信。它使用Qt的QProcess类来管理外部进程, 并提供了一系列方法来设置和return 程序的执行路径、工作目录、参数等信息。

ASERProgram的具名管道只提供基本的读写功能,可供任意接入其他内容的解析。 如果要使用标准的ASEDevIO协议,请将此类的指针提供给ASERStudio::ASEREnv::ASEDevIO。

Note: 为了正确捕获管道状态,你应该在第一次调用start函数启动ASE-Remake之前就将 其设置给ASEDevIO。

这类是可反复使用的,你不必每次启动ASE-Remake都创建一个新的实例。

成员函数文档

[since ASERStudio 2.0] ASERProgram::ASERProgram()

构造函数,初始化ASERProgram对象

这个function 从 ASERStudio 2.0 开始支持。

[noexcept, since ASERStudio 2.0] ASERProgram::~ASERProgram()

析构函数,清理ASERProgram对象。

如果ASE-Remake还在运行,这会尝试发送一个停止信号给它,但不会 等待它完全退出。因此在一些极端情况下可能导致ASE-Remake跑飞。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] QString ASERProgram::getExecutablePath() const

return ASER程序的可执行文件路径

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] qint64 ASERProgram::getExitCode() const

return ASER程序的退出代码。

如果程序已经停止;否则返回-1。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] QStringList ASERProgram::getLastArguments() const

return ASER程序的最后一次启动参数列表

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] QString ASERProgram::getLocalLowPath() const

return ASER程序的配置文件路径。由于ASER是Unity编写的,因此 它默认在

当前用户文件夹\LocalLow\Gradus\ASE-Remake(在Windows上)

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] qint64 ASERProgram::getProcessID() const

return ASER程序的进程ID,如果程序正在运行;否则返回-1。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] QWindow *ASERProgram::getProcessWindow() const

return ASER程序的主窗口,如果程序正在运行且窗口可用;否则返回nullptr。 这函数的实现可能依赖于特定平台的窗口管理机制,因此在不同操作系统上可能表现不同。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] QString ASERProgram::getResourcePath() const

return ASER程序的资源目录路径,ASER的外部资源存放在此处。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] QString ASERProgram::getWorkingDirectory() const

return ASER程序的工作目录

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] bool ASERProgram::isRunning() const

return ASER程序是否正在运行。

返回true如果程序正在运行;否则返回false。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] void ASERProgram::setExecutablePath(const QString &path)

path 可执行文件路径

设置ASER程序的可执行文件路径

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] void ASERProgram::setWorkingDirectory(const QString &path)

path 工作目录路径

设置ASER程序的工作目录。请注意,这只干涉ASE-Remake 扫描默认资源目录的起始位置,不变更ASE-Remake由Unity 决定的默认配置目录位置,也不代表实际执行AStoryX剧情脚本时的 项目目录。要调整后者,请从ASERDevIO::changeDirectory()函数调整 ASE-Remake的执行项目目录,或者在启动时通过Path参数指定项目目录。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] void ASERProgram::start(const QStringList &arguments = QStringList())

arguments 启动参数列表

启动ASER程序,接受可选的参数列表。如果程序已经启动,这函数 不产生任何效果,也不会记录参数。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] void ASERProgram::start(const ASERStudio::ASEREnv::ASERProgramLaunchParameter &parameter, const QStringList &arguments = QStringList())

通过ASERProgramLaunchParameter结构体启动ASER程序。这个函数会根据 参数中的文件路径和大小模式来构建适当的命令行参数。 值得指出的是,当前ASE-Remake程序的有效启动参数均通过一个JSON结构体传递, 因此 parameter 中的有效参数会被格式化为一个Json字符串并作为首个参数 传递给ASE-Remake程序。除此之外其他Unity通用参数可以通过 arguments 参数传递。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] void ASERProgram::stop()

停止ASER程序,如果程序正在运行。这函数只发送终止信号给程序, 且不等待程序完全退出。如果需要等待程序退出,请使用waitStop()函数。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] bool ASERProgram::waitStop(qint32 waitMS = 3000)

等待ASER程序停止,接受一个可选的超时时间(毫秒) waitMS

return 程序是否在指定时间内停止

如果waitMS为-1,则无限等待直到程序停止。 不推荐使用这个函数,如果ASER意外卡死,它会连带卡死YSS。 如果必须等待程序完全停止,建议使用programStopped信号来处理程序停止事件,而不是阻塞等待。

这个function 从 ASERStudio 2.0 开始支持。

[since ASERStudio 2.0] void ASERProgram::writeNamedPipe(const QString &context)

context 要发送的数据内容

通过具名管道向ASER程序发送数据。接受一个字符串参数,表示要发送的数据内容。

这个function 从 ASERStudio 2.0 开始支持。