我正在尝试整理一个使用rubyw.exe(1.8.7)执行的ruby脚本中的多个系统调用的进程。
据我所知,rubyw.exe的主要原因是它没有弹出命令提示符来分散用户的注意力。但是,从该进程内部进行的系统调用仍然会生成这些弹出窗口,这对于此进程脚本的用户来说非常分散注意力。
有谁知道怎么做?
在SO上有很多类似的问题但没有一个能够解决这个问题,如果我使用python这个问题/答案会有所帮助(http://code.activestate.com/lists/python-list/46042/)但到目前为止我的搜索还没有找到方法用红宝石完成这个。
更新:这里有一个这样的线程Hiding curl Window on Windows很接近,但是那里唯一可行的解决方案也不允许你获得标准输出。
答案 0 :(得分:2)
我最终选择了win32-open3 gem。因为在Windows系统上没有实现fork,所以你不能使用内置的open3,你需要做一个
gem install win32-open3
然而,这带有可以传递给调用方法的标志,特别是
Windows版本与open3有几点不同 (哪一个 也适用于Open4.popen4) - 模式标志和show标志。为了 模式,您可以指定't'(文本,默认值)或'b'(二进制)作为 第二个论点。 对于show标志,您可以指定true或false, 它将显示控制台窗口,具体取决于您的值 通过。 默认值为false 。
这个特殊脚本的用户不再被15厘米的窗户轰炸,不断窃取焦点,所以......赢了?