搜索
aardio官方社区 门户 查看主题

请问如何获取 process.execute 执行DOS命令获取返回内容的问题

发布者: ChristopheLee | 发布时间: 2015-6-11 23:04| 查看数: 2793| 评论数: 4|帖子模式

通过 process.execute 成功运行CMD 添加参数,实现执行PHP CGI,却找不到有相关的函数获取该DOS窗口返回的内容。希望借返回内容判断是否运动成功。请教各位有什么方法获取CMD返回内容?

还有个问题,想在按钮文本上显示 & 字符,请问如何实现?


  1. import win.ui;
  2. import process;
  3. import fsys;
  4. import fsys.dlg;
  5. /*DSG{{*/
  6. mainForm = ..win.form(text="aardio Form";right=524;bottom=397)
  7. mainForm.add(
  8. button={cls="button";text='Start PHP FastCGI Nginx';left=384;top=10;right=514;bottom=68;z=2};
  9. button2={cls="button";text="Stop PHP FastCGI";left=384;top=91;right=514;bottom=125;z=3};
  10. cgista={cls="static";text="PHP CGI 路径";left=8;top=344;right=82;bottom=362;transparent=1;z=6};
  11. log={cls="edit";left=7;top=9;right=377;bottom=329;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;vscroll=1;z=1};
  12. nbinxsta={cls="static";text="Nginx 路径";left=8;top=372;right=82;bottom=390;transparent=1;z=9};
  13. nginxpath={cls="edit";text="F:\Service\Nginx-1.9.1";left=85;top=368;right=311;bottom=390;edge=1;multiline=1;z=7};
  14. phpfcgipath={cls="edit";text="F:\Service\PHP-5.6.9-nts-VC11-x86";left=85;top=340;right=311;bottom=362;edge=1;multiline=1;z=4};
  15. selectcgi={cls="button";text="浏览..";left=316;top=339;right=377;bottom=362;z=5};
  16. selectnginx={cls="button";text="浏览..";left=316;top=367;right=377;bottom=390;z=8}
  17. )
  18. /*}}*/

  19. mainForm.selectnginx.oncommand = function(id,event){
  20.         //var dir = fsys.dlg.open("Nginx|nginx.exe|");
  21.         var dir = fsys.dlg.opendir();
  22.         mainForm.nginxpath.text = dir + "";
  23.        
  24. }
  25. mainForm.selectcgi.oncommand = function(id,event){
  26.         //mainForm.msgbox( mainForm.selectcgi.text );
  27.         var dir = fsys.dlg.opendir();
  28.         mainForm.phpfcgipath.text = dir + "";
  29. }
  30. var fcgi,nginx = process();

  31. mainForm.button.oncommand = function(id,event)
  32. {
  33. ;
  34.         // 启动PHP CGI
  35.         fcgi = process.execute("cmd.exe",'/c ' + mainForm.phpfcgipath.text + 'php-cgi.exe -b 127.0.0.1:9000 -c ' + mainForm.phpfcgipath.text + 'php.ini',,0x0/*_SW_HIDE*/);
  36.         //mainForm.msgbox( tostring(fcgi) );
  37.         mainForm.msgbox( fsys.ge );
  38. }

  39. mainForm.button2.oncommand = function(id,event){
  40.         process.kill("php-cgi.exe");
  41.         mainForm.msgbox( '&'# )
  42. }

  43. mainForm.show()
  44. return win.loopMessage();

复制代码

最新评论

五月风 发表于 2015-6-11 23:31:27

按钮文本显示 & 键入 && 就行了,至于第一个问题,论坛搜索管道即可。

按钮文本显示 & 键入 && 就行了,至于第一个问题,论坛搜索管道即可。
ChristopheLee 发表于 2015-6-12 01:01:58

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=69531&ptid=12948][c

五月风 发表于 2015-6-11 23:31
按钮文本显示 & 键入 && 就行了,至于第一个问题,论坛搜索管道即可。

可是 process.popen 执行 cmd.exe /c **** 不能隐藏,DOS窗口还是一闪而过。
roger 发表于 2015-6-12 07:56:16

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=69533&ptid=12948][c

ChristopheLee 发表于 2015-6-12 01:01
可是 process.popen 执行 cmd.exe /c **** 不能隐藏,DOS窗口还是一闪而过。
这些东西在aardio自带的范例里都有,
执行程序不是都一定要通过 cmd.exe /c 调用,这都是些基础常识。

例如php-cgi.exe这样写就可以,参数说明里写的很清楚:

  1. var prcs = process.popen("php-cgi.exe","其他参数")
复制代码
其实不用别人告诉你自己也可以这样尝试一下吧?

至于php-cgi.exe的用法,这就需要你自己去研究PHP的文档了,
当然如果你不介意做回伸手党直接拿现成的,可以论坛搜索帖子: 在aardio中使用 CGI 方式运行 php 实例

我还是建议你不要看上面的帖子,这么简单的东西:自己解决。

45313097 发表于 2015-7-24 11:09:57

[quote]runCmd = function(arg){ ..io.print("RUN:",arg) ..process.execute_wait

runCmd = function(arg){
        ..io.print("RUN:",arg)
        ..process.execute_wait("cmd.exe","/c " ++ arg,,0)
}

隐藏窗口执行命令行"arg",怎么取得DOS窗口返回的内容,我也不会

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-9-22 07:05 , Processed in 0.156250 second(s), 21 queries , Wincache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表