ASERStudio::ASEREnv::ASERProgram Class
class ASERStudio::ASEREnv::ASERProgramASERProgram提供对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 ¶meter, 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 ¶meter, 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 开始支持。