尝试使用下面的示例代码保存文档时,应将文档保存在给定位置。如果该文件已存在,则会抛出异常。到现在为止还挺好。但是在极少数情况下.SaveAs方法会阻塞,它会打开MS Word另存为对话框(如果Word可见,否则必须使用任务管理器激活它)。
这种情况只发生在装有Windows 10和Office 2016的1台PC上。
问题出在这里,我不知道何时期待对话,文档没有说明任何内容(https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document.saveas.aspx)。
使用SaveAs提示对话的条件是什么?就我而言,我从不想看到这个对话框。尝试了晚期和早期绑定,两个结果相同。这是一个可以通过代码修复的问题,还是以某种方式在Word中设置?
procedure Example(Sender: TObject);
var
lWord : TWordApplication;
lDoc : TWordDocument;
begin
try
lWord := TWordApplication.Create(Self);
lWord.ConnectKind := ckNewInstance;
lWord.Disconnect;
lWord.Connect;
lWord.Visible := True;
lDoc := TWordDocument.Create(lWord);
lDoc.SaveAs('C:\Temp\test.doc');
except
on e: exception
do
begin
//reResults.Lines.Add(e.Message);
//reResults.Lines.Add(e.StackTrace);
end;
end;
try
lWord.Quit;
finally
end;
end;