打开数据库中存的文件(字段image 型)TBlobField(FieldByName('content')).SaveToFile(文件名)//存为临时文件再用 ShellExecute(handle,'open',Pchar(文件名),nil,nil,sw_show)打开临时文件,打开临时文件后关闭时自动删除怎么实现?关闭临时文件有触发事件吗?如果临时文件被修改,我想保存进数据库!!
如果有就好了我可以 DeleteFile(filepath);也可以保存进数据库了

解决方案 »

  1.   

    你可以捕捉打开临时文件的程序是否打开,如果该程序关闭,就可以用Deletefile删除该文件了,具体的api是findwindow或findwindowEx
      

  2.   

    我把数据库里存的各种各样文件在LISTVIEW中列出,双击打开文件,我存了临时文件,再打开它,我想判断用户有没有对他修改,如果有的话,就保存到数据库中,具体就是做这个。
    larruping说的好象可行,我想具体了解一下findwindow或findwindowEx。
      

  3.   

    findwindow的一般用法postMessage(FindWindow(nil,'运行'),WM_QUIT,1,0);  {寻找标题为‘运行’的窗体并关闭该窗体}
      

  4.   

    findWindow根据特定的标题查找窗口,兼容性并不好,
    只要有程序使用无法判断的标题就不行了.1.
    Timer吧,不试试怎么知道不行呢?用Timer扫描这些临
    时文件属性,当然要用一定的数据为这些临时文件保存
    一定的信息,然后根据修改时间的不同自动保存数据库.
    类似的程序我曾经做过,实为一个简便的方案。2.狠一点的方案(底层的),未空开API函数
    shchangenotifyregister和shchangenotifyderegister,shchangenotifyregister
    注册文件系统变化监视器
    具体用法参看MyBase