2014-02-22 102 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