我用word :Olevariant; word :=createoleobject('word.application');的方法来替换doc文档,操作后发现

  • 主题发起人 主题发起人 rlz
  • 开始时间 开始时间
R

rlz

Unregistered / Unconfirmed
GUEST, unregistred user!
我用word :Olevariant; word :=createoleobject('word.application');的方法来替换doc文档,操作后发现进程中的winword.exe进程不能释放,每操作一次就多一个winword.exe进程,请高手赐教,如何释放它?(50分)<br />我用word :Olevariant; word :=createoleobject('word.application');的方法来替换doc文档,操作后发现进程中的winword.exe进程不能释放,
我释放是这样写的:word.quit;
每操作一次就多一个winword.exe进程,请高手赐教,如何释放它?
 
听高手指点,提前
 
提前,请高手指点
 
提前,请高手指点
 
这件事是最好办的,你声明这种Olevariant对象时,在使用的过程或函数中声明,在退出过程或函数时释放,不要做成全局变量,就可以了。
 
最后加上一句word:=unassigned
 
谢谢兄弟的回答。
我就是用上面的方法来实现的,不行,请兄弟们再试试。
 
把WORD的控件断开连接,在exit即可。
 
var
word :Olevariant;
begin
word :=createoleobject('word.application');
...
..
word.Quit;
end;
 
谢谢楼上的兄弟,这个代码我也试过了,不行。
 
提前呀,请高手出招。
 
1、首先使用GetActiveOleObject判断当前系统是否已经启动word。
如果没有启动,再使用CreateOleObject来进行启动。
2、使用Word句柄.Quit是可以退出word的。

http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517
 
var word:olevariant;
1.首先使用GetActiveOleObject判断当前系统是否已经启动word。
如果没有启动,再使用CreateOleObject来进行启动。
2、word.quit;
3. word:=nil;
 
用这个 WORD := GetActiveOleObject('Word.Basic')

请吗?
 
var
word :Olevariant;
begin
word :=createoleobject('word.application');
...
..
word.Quit;
[red]word := nil;[/red]
end;
 
用Quit绝对是可以退出WORD的,除非你改变了文档又没有保存,在QUIT时没有加参数,所以WORD不能退出,你查查代码,只要你改过文档,那么你必须:要么保存它,要么通知WORD放弃保存。
 
to Nosound:
我保存用的是WordApp.ActiveDocument.SaveAs('c:/temp.doc');
 如果我不保存,那么我如何来通知它呢?
 谢谢兄弟们的回复。
 
Quit方法用三个参数,其中有一个是放弃保存直接退出的。
但我这里没有WORD的VBA帮助,记不清它的值是多少了,你可以查查VBA的帮助文档
 
多人接受答案了。
 
后退
顶部