我的程序大概是这样的
procedure TForm1.Button1Click(Sender: TObject); 
var
  p:string;
begin
   p:=adoquery1.Fieldbyname('filename').AsString;
   //p的值得到的是'备份\test.doc' 
   ShellExecute(handle,'open',p,null,null,SW_SHOW);
end;
正常打开都好用,可是我用程序删除这个文档,在用程序从新添加文档的时候,就在打不开了,但是把程序关掉,又能打开了,这是什么原因呢?

解决方案 »

  1.   

     代码没有错。看你删除是如何删的,是不是把WORD留在内存了。
      

  2.   

    我直接用DeleteFile('备份\test.doc')删除备份文件夹下的这个文件啊,然后在用CopyFile 复制了一个文件到这个文件夹里,在执行ShellExecute(handle,'open',p,null,null,SW_SHOW); 这个文件就打不开了,只能把这个程序关掉,然后在启动才能打开