首页
  • 产品
    • 小程序(applet)
    • 批量处理(BatchPlus)
    • 数墨(DigiInk)maya
    • 数墨(DigiInk)nuke
    • 法线(normal)maya
  • 更多
    • 论坛(CG工业社)
    • 关于
  • 登录
  • 注册
  1. file
  2. path
  3. python
  4. settings
  5. subProcess
  6. system

SubProcess 接口使用指南

在嵌入式应用程序中,此页面上的 JavaScript 可以使用 window.appletSubProcessObject 对象执行表达式代码并与后端交互,仅支持1.4及以上的版本。

初始化通信通道

在应用程序加载时,设置通信通道以便 JavaScript 可以与 Path 通信。
将 qwebchannel.js 文件加载到你的应用程序中:

html <head> <script language="javascript" src="./qwebchannel.js"></script> </head>

你可以从指定位置获取 qwebchannel.js 并将其部署到你的应用程序的 Web 服务器中。

创建 Web 通道通信对象

在应用程序加载完成后,创建 Web 通道通信对象:

javascript new QWebChannel(qt.webChannelTransport, channel=> { for(const i in channel.objects){ const name = 'applet'+i.charAt(0).toUpperCase() + i.slice(1)+'Object'; if(!window.hasOwnProperty(name)){ window[name] = channel.objects[i] } } console.log('init done'); }); 或 javascript window.onload = function() { if (!qt || !qt.webChannelTransport) { return; } new QWebChannel(qt.webChannelTransport, function(channel) { window.appletSubProcessObject = channel.objects.process; }); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.create( false, //是否启用base64 function(result) { alert(result); } ); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.clearAll( function(result) { alert(result); } ); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.clear( id,//id在create的返回值里面 function(result) { alert(result);//清理进程 } ); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.kill( id,//id在create的返回值里面 function(result) { alert(result);//结束进程运行 } ); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.cwd( id,//id在create的返回值里面 function(result) { alert(result);//返回工作目录 } ); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.setCwd( id,//id在create的返回值里面 'c:/'//设置工作目录 function(result) { alert(result); } ); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.setEnv( id,//id在create的返回值里面 env, //['a=b','b=c'] or {a:b,b:c} function(result) { alert(result); } ); }

执行表达式打开,2.1开始的版本接口

字符串表达式

javascript if (window.appletSubProcessObject) { window.appletSubProcessObject.env( id,//id在create的返回值里面 false, //返回字典或者列表 function(result) { alert(result); } ); }

执行表达式打开,2.1开始的版本接口

需要先启用对应的权限 window.appletSubProcessObject.Execute

字符串表达式

javascript if (window.appletSubProcessObject && window.appletSubProcessObject.Execute) { window.appletSubProcessObject.start( id,//id在create的返回值里面 cmd, //['xxx.exe','-f','1'] or 'xxx.exe -f 1' window.appletSubProcessObject.OpenMode.ReadWrite, //模式可以不填 function(result) { alert(result); } ); }

执行表达式打开,2.1开始的版本接口

需要先启用对应的权限 window.appletSubProcessObject.Execute

字符串表达式

javascript if (window.appletSubProcessObject && window.appletSubProcessObject.Execute) { window.appletSubProcessObject.execute( cmd, //['xxx.exe','-f','1'] or 'xxx.exe -f 1' env, //['a=b','b=c'] or {a:b,b:c} false, 是否启用base64 -1,//默认强制等待时间 ms,-1表示无线时间 function(result) { alert(result); } ); }

执行表达式打开,2.1之前的版本接口

需要先启用对应的权限 window.appletSubProcessObject.Execute 并提供一个回调函数,第一个参数是需要执行的命令,可以使用列表或者字符串,第二个参数是等待的时间,默认是30000毫秒。当代码执行完成时,将调用该函数并返回结果。

字符串表达式

javascript if (window.appletSubProcessObject && window.appletSubProcessObject.Execute) { window.appletSubProcessObject.runCommand( "net", 3000,//默认强制等待时间 ms,-1表示无线时间 function(result) { alert(result); } ); }