为什么注册表里会有呢?如果安装时添加的注册表项,就应该知道在那里找如果只是一般的查找,还不如遍历磁盘用CFileFind;

解决方案 »

  1.   

    如果要便历注册表,用RegEnumKeyEx、RegOpenKeyEx、RegEnumValue、RegCloseKey等函数。
    通常在安装软件时,可以在注册表HKEY_LOCAL_MACHINE\SOFTWARE下面创建子键,给子键创建键值来记录安装路径等信息。读注册表时,用RegOpenKeyEx、RegQueryValueEx、RegCloseKey函数。MSDN中有相关函数说明。
      

  2.   

    万一人家没有在注册表里记录,那楼主岂不是白搜索了如果你已经确定是哪个程序了,那就看看它安装的时候在注册表里写在哪里。(regedit.exe里面有搜索的功能)
    这样你程序中就不用搜索了,直接到注册表指定位置去读就可以了。
      

  3.   

    如果原先安装的时候不写注册表,搜了也白搭。只能傻做,遍历所有的地方,找出来,不过也有可能同名的exe好几个
      

  4.   

    我现在就是想先在注册表里搜索那个文件是否存在,如果存在则取出他的全路径。
    我一开始是想全盘搜索,但是那样太慢了。
    我现在在写一个应用程序A,要用到另外一个应用程序B,但是我不知道用户把应用程序B安装在哪一个盘,所以要进行搜索,
    假如我在写应用程序A的时候设置全盘搜索应用程序B的话,用户用我的应用程序A的时候就等不及了,全盘搜索本来就很慢。
    望高手帮我解决这个问题。
      

  5.   

    CFileFind;各个盘搜索.缺点:必定很慢,注册表也一样!
      

  6.   

    如果知道是什么程序,但是不知道要安装的时候安装在哪一个盘下面,现在的硬盘都相对比较大,要找一个文件好比如大海捞针的,尽管CPU也很快,但是硬盘自己本身吃不消了吧,还是用查找注册表来的快多了,基本上安装的是程序的话都只在同一主项下面可以找到,只要再读出项的值就很到文件的绝对路径了!