WebBrowser中打开word文档的问题:怎样关闭已打开的word文档(300分)

  • 主题发起人 主题发起人 gboyjuan
  • 开始时间 开始时间
G

gboyjuan

Unregistered / Unconfirmed
GUEST, unregistred user!
我的想法是:
在用WebBrowser打开word文档之前,将这个文档复制到当前目录,然后再打开这个副本
但当我要打开第2个文档时,就不能复制了,因为先复制的那个副本还没关闭
请问如何关闭这个已打开的word文档??????
用Navigate('about:blank')和Navigate('')的方法都不行,有什么办法可以解决
如果分不够还可以再加,只要问题解决,马上送分
 
难道就没人知道解决的办法吗?
还是分少了,分少可以加
 
用findwindow、sendmessage
var hnd:integer;
begin
hnd:=findwindow(nil,'打开的WORD的标题');
if hnd<>0 then
sendmessage(hnd,WM_CLOSE,0,0);
end;
 
用findwindow、sendmessage怎么关闭呢
我可是在delphi的程序中用TWebBrowser显示word文档的内容啊
并没有用ms word来打开
 
贴出关键代码来?
 
WBR_DOC为TWebBrowser的实例
WBR_DOC.Navigate('about:blank');
CopyFile(
PChar(ExtractFilePath(Application.ExeName)+'templet/'
+fieldbyname('pvalue').AsString+'.doc'),
PChar(ExtractFilePath(Application.ExeName)+'temp.doc'),
False);
WBR_DOC.Navigate(ExtractFilePath(Application.ExeName)+'temp.doc');
 
要先把WBR_DOC实例析放掉!
 
是你CopyFile的问题吧
CopyFile(...,...,True); //覆盖已存在的文件
 
我也想过这个方法
但释放后,怎么创建呢
用动态创建该实例,有点问题
你可以试试
 
to pihome:
我劝你先去看看帮助再来
copyfile的使用肯定没问题
 
sorry,有点想当然了[:)] 我测试测试先[:D]
 
MSWord := CreateOLEObject('Word.Application');//连接Word
MSWord.Documents.Open(FileName:='d:/test.doc', ReadOnly:=True);//打开外部Word文档
MSWord.Visible := 0;//是否显示文件编辑
MSWord.ActiveDocument.Range(Start:=0, End:=0);//开始改变的启止位置
MSWord.ActiveDocument.Range.InsertAfter(Text:='Title');//在Word中增加字符'Title'
MSWord.ActiveDocument.Range.InsertParagraphAfter;
MSWord.ActiveDocument.Range.Font.Name := 'Arial';//字体名称
MSWord.ActiveDocument.Range.Font.Size := 24;//字体大小
 
to yubing8:
你这个方法恐怕在通过word程序打开word文档吧
我的意思是就在我编的程序中显示word文档内容
 
搞定,试试看:)
var
Doc: OleVariant;
begin
if Assigned(WBR_DOC.Document) then
begin
Doc:=WBR_DOC.Document;
WBR_DOC.Navigate('');
Doc:=NULL;
end;

while not CopyFile(
PChar(ExtractFilePath(Application.ExeName)+'templet/'
+fieldbyname('pvalue').AsString+'.doc'),
PChar(ExtractFilePath(Application.ExeName)+'temp.doc'),
False) do
begin
if GetLastError = 1224 then //上面关闭后需要一定的时间还能真正的关闭文件
Continue; //在此期间返回1224错误
else
Exit; //是其它错误,比如源文件不存在等,直接退出
end;

WBR_DOC.Navigate(ExtractFilePath(Application.ExeName)+'temp.doc');
end;
 
to pihome:
好像不行哦
文件并没有关闭
那么这样的话,就不停的循环下去了
 
看看能不能取得WEB中WORD的接口
 
to D_LOVER:
怎么取接口,取到后再怎样
 
用WORD的接口操作文档,此时已经与BROWSER基本无关了吧
------只提供个思路,没经验正
 
to D_LOVER:
想法很好,但具体……
 
后退
顶部