如何检测某些软件已安装并测试
测试软件包括:
   office,txt,CAD/CAM/CAE/ProE

解决方案 »

  1.   

    从注册表里查文件名和安装路径,然后FileExists()?
      

  2.   

    FileExists()可以判断某个文件夹内是否存在某个文件,一般注册文件都是放到某个指定的路径,这个在安装程序的时候就确定了,你可以找到这个路径,还要找到这个文件的路径,用找函数路径的函数(忘了是什么),再与注册表里的路径进行对照。
      

  3.   

    我现在的问题,如何测试出OFFICE的版本及路径
      

  4.   

    你是想知道用户有没有安装吧,呵呵 建议你还是针对注册表操作比较好哦!FileExists(注册表地址)
    好好看看注册表相关的吧!
      

  5.   

    检测的应该是exe文件,而不是扩展名。
      

  6.   

    +++
    这个方法就可以,如果你担心“软件卸载”之后注册表会残留的话嘛,你可以在程序里用
    CreateOleObject,例如//针对Excel
    try
      CreateOleObject('Excel.Application');
    except
      ShowMessage('未安装Excel');
    end;
    //txt的话嘛,有很多软件都可以编辑文本
    //可以试试从文件默认打开程序入手
    文件关联
      

  7.   

    我查了一下,提示:未引用单元,但是提示没有引用单元,我又加载单元: Excel2000
    可是还是出错了,错误代码:
     CreateOleObject('Excel.Application');[错误] Unit1.pas(66): Undeclared identifier: 'CreateOleObject'
      

  8.   


    为什么不能测试出Winrar压缩软件  try
        CreateOleObject('WinRAR.Application');
      except
        ShowMessage('未安装WinRAR                  ');
      end;
      

  9.   

    这个是可以的,但是如下所示:
    //针对WORD
    try
      CreateOleObject('WINWORD.Application');
    except
      ShowMessage('未安装WINWORD');
    end;
    能正常测试出WINWORD是否安装,但是每检测一次,进程中就出现一个
    WINWORD.exe,必须"终止进程"才行呀
      

  10.   

    肯定需要自己去终止啊,将createoleobject的返回值保存下来即variant类型的值,然后返回值的exit方法。例如:
    var
    xls:variant;
    try
      xls:=CreateOleObject('excel.Application');
    except
      ShowMessage('未安装WINWORD');
    end;
    xls.exit;
      

  11.   


    加上了这个xls.ext;
    还是出错了呀
    Method 'exit' not supperted bu automation object.