关于OLE中文件保存和释放的问题(300分)

  • 主题发起人 主题发起人 bpearl
  • 开始时间 开始时间
B

bpearl

Unregistered / Unconfirmed
GUEST, unregistred user!
状况描述:
我的程序用shell方式用word来打开某doc文件,编辑完成后,用户可能
直接Alt+F4关闭word窗口,这时候word提示保存,点yes后word关闭,
并自动产生一个后台动作在保存doc文档。问题:我的主程序怎么判断
那个后台已经把文件保存完了? 难点:对于文件来说,后台保存的时候
文件的独占已经被释放,我的程序或者别的程序可以用可写方式打开该
doc文件,那么就会出现word本身的后台还没保存完,我的程序就开始用
它了,造成数据混乱。

相应的,我的程序可能是用shell打开了excel或者photoshop等,怎么能
有一个通用的办法确定被打开的文件已经被外部程序真的释放了?
谢谢大家了,300分奉上,不知道够不够。
 
//关闭窗口时在closequery获取ole.modified的属性值
procedure TMDIChildForm.FormcloseQuery(Sender:tobject; var canclose:Boolean);
begin
canclose:=true;
if olecontainer1.modified then
begin
case messagedlg('save changes to object ?',mtconfirmation,mbyesnocancle,0) of
mryes:
begin
mainform.save1.click(sender);
if olecontainer1.modiried then
canclose:=false;
end;
mrcancle:canclose:=false;
end;
end;
 
to weblogic_li
MDI子窗口并非我程序中的窗口,而是用shell调的word的窗口,有单独的
进程,我只能得到的是它的进程Handle,呜呜。
 
这个奇怪的想法我一直在研究,我估计这个问题并非300分可以解决,
所以观注它!谁要是解决了,我也加200分给他!!!
 
有一个方法可以圆满解决这个问题,加一个TOleContainer!
具体见 http://www.delphibbs.com/delphibbs/dispq.asp?lid=1205134
kylin_2000 别忘了你说的话。

 
哦,原来是我的答案:)
是不是也要给我200分呀?
 
后退
顶部