【问题标题】:In CAPL, is there any function to start/open an executable in background?在 CAPL 中,是否有任何功能可以在后台启动/打开可执行文件?
【发布时间】:2017-10-17 07:49:35
【问题描述】:

我想从 CAPL 脚本运行可执行文件。有什么功能吗?
我正在寻找一个可以在后台运行可执行文件的函数。例如。如果收到某个消息,则启动应用程序。
CAPL中是否有这种可能性?

【问题讨论】:

    标签: capl canoe


    【解决方案1】:

    是的,有两个函数可以做到这一点:

    long sysExec(char cmd[], char params[]);
    long sysExec(char cmd[], char params[], char directory[]);
    
    long sysExecCmd(char cmd[], char params[]);
    long sysExecCmd(char cmd[], char params[], char directory[]);
    

    这些函数执行外部命令。他们不会等到命令完成执行。如果命令启动成功,则返回值为 1;否则为 0。请注意,不会返回来自命令本身的返回值,因为调用不会等待命令完成。

    sysExec 必须被赋予一个可执行文件; sysExecCmd 使用第一个参数调用cmd.exe /K,这将打开一个命令窗口,在该窗口中执行命令,就像直接输入一样。

    请注意,在使用 VN8900 设备、实时模块(VT 6000 系列)或 CANoe RT 服务器的分布式仿真环境中,sysExec 在远程平台上执行请求的命令。

    这是一个例子:

    sysExec("C:\\windows\\notepad.exe", "");
    

    【讨论】:

      【解决方案2】:

      第三个选项,如果你不需要并行处理是 testwaitforsyscall() 函数。

      这将等待您的外部可执行文件返回 x 超时,并将分析您的应用程序是否正确退出、错误退出、出现错误或超时。

      【讨论】:

      • 作为 TFS 的一部分,这个选项需要一个 TestCase,所以它只在在线模式下可用。
      猜你喜欢
      • 1970-01-01
      • 2020-03-04
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多