如题,最好有一个稳妥的办法,并且将我的程序生成的 dxf 直接调用 autocad 打开(不是嵌入我的程序),需要考虑到 autocad 的不同版本

解决方案 »

  1.   

    用 File.Exists 方法检查一下 AuthoCAD 的主程序 exe 文件是否存在
      

  2.   

    这办法不行,你无法知道用户的 autocad 安装在磁盘的什么位置,难道扫描用户机器上的所有分区不成
      

  3.   

    HKEY_LOCAL_MACHINE
    SOFTWARE
    AutoDesk
    ...
    ...
      

  4.   

    说具体一点吧,
    1. 我想知道 autocad2000 以后的版本是否会在注册表的某个固定(或者相对比较固定)的位置写入一些值,通过检测这些值是否存在来判断是否已经安装了 autocad 以及程序的版本,或者2. autocad2000以后的版本是否一定会注册某个activex控件到系统里,通过检测这个控件的注册信息以及版本来确定是否是否已经安装了 autocad 以及程序的版本3. 然后从注册表的什么位置可以得到 autocad 主程序的位置来启动 autocad 打开我生成的 dxf 文件。还有一种办法就是直接通过系统启动生成的 dxf 文件,让windows自己调用autocad来打开dxf,但是这种办法需要确保 dxf 文件的默认打开动作被关联到 autocad 程序,并且 autocad 已经正确安装。不知道这2种办法哪种好一些?
      

  5.   

    顶,我以前做过。不同版本的软件注册OCX相同,要不然他的软件就没法跑了。
      

  6.   

    如果只检测一个各版本都相同的ocx注册的话就没法判断版本了呀?楼上的兄弟还有以前的代码吗?我这下载、光驱、usb全给管制了,没法装了各个版本的autocad来一个一个分析,痛苦中...
      

  7.   

    当然是查注册表
    你装个AutoCAD再看一下注册表就会有线索了
      

  8.   

    Regedit
    分析注册表中autocad的几个subRegistyKey