2014-02-22 147 views
0
system("start /wait file.docx") 

这将启动文件,但无法等待,如果其他的docx文件已经打开。如果没有打开文件,可以很好地工作。启动/等待不等待,如果文件已经打开

我所试图做的事:我想打开Windows中的文件,其默认编辑器并等待用户输入,并做一些更改该文件后保存,因此我使用

/wait. 

感谢您的任何提示?

回答

2

中WINWORD默认行为是重复使用的可执行文件的现有实例打开多个文档。因此,第二个打开的文件操作将其工作委托给现有的工作并退出,因此启动命令返回。

一个通常的选择是使用COM打开文件并测试实例关闭。但是我对ruby一无所知,或者它对COM的支持。

最好的方法将是找到WINWORD可执行文件,并直接使用作为paramenters /w filename.docx强制文件打开到一个新的实例调用它。

+0

我尝试了第二种方法来打开winword可执行文件,方法是:启动“”/ w“C:\ Program Files(x86)\ Microsoft Office \ Office14 \ WINWORD.EXE” 将文件名.docx – Ross

+2

@Ross'start“”/ wait“C:\ Program Files(x86)\ Microsoft Office \ Office14 \ WINWORD.EXE”/ w“filename.docx”'/ w'开关不是开始命令的'/ wait'开关。它是切换到winword可执行文件告诉它打开一个新的实例。如果你有新的实例,那么你可以等待它完成 –

+0

你应该得到某种奖章。由于一吨男人 – Ross