本人做了一个管理工具程序, 例如 :
我上传QQ的安装包 .我给它命名为 test 了.
之后我在下载test ,然后自动运行 . 
这个时候 ,由于 它是第三方程序 ,它的安装过程,选择文件路径的信息 我都是获取不到的.
请问 该如何获取到 ,它安装完成之后 ,我要获取到该程序的绝对路径.

解决方案 »

  1.   

    方法很多种的 ,既然是关于QQ那我就介绍一种最简单的吧 .
    通过读取注册表值就可以了 ,因为现在的QQ都是支持皮肤的 ,每次安装都会写入注册表:那里有个TypePath可以读取到安装路径.还有很多方法都可以的,注册表读取最简单,其它不列举了.
      

  2.   

    TypePath ? 是哪个类库的,我的开发环境是C# 
      

  3.   

    也可以独立开启一个Thread ,然后使用FileSystemWatcher 类来循环监视整个磁盘,遍历所有磁盘目录 ,然后指定Filter为*.exe  , 监控Created事件 ,但是这样做的开销是很大的 ,并且需处理排除临时文件之类的,或者更直接的干脆预先知道被安装的软件的默认主磁盘名称,比如QQ安装后是QQ.exe ,opear浏览器安装后是opera.exe等之类的,在安装的时候如果你的程序知道是下载安装的哪一个软件,就可以直接指定监控的具体文件创建事件了,轻易取得路径而无需作出太多的处理了.另外一个也尝试看下WMI里面有无你想要的 ,WMI 里面保存了软件列表,这样读取出来的也不会有错了.
      

  4.   

    程序安装完启动的时候可以获取到路径
    appdomain.currentdomain.basedirectoy
    好是是这样写的
    如果不是启动的话就按照名称去查询注册表吧