none
怎么根据一个软件的名称获取一个软件的启动文件的路径 RRS feed

  • 问题

  • 通过HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall能获取本机已安装软件,但我要获取该软件的启动文件的路径,比如安装了酷狗软件,我要获取C:\Program Files (x86)\KuGou7\kugou7.exe这个路径。

    我想知道通过注册表方式能获取到吗?或者有其他方式?

    能否对本机已安装软件进行分类(音乐、浏览器等)

    2011年10月31日 9:00

答案

  • 应该从这个路径下取的HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths,这样至少取到启动路径了。
    • 已标记为答案 MOSS无解 2011年11月1日 2:35
    2011年11月1日 2:35

全部回复

  •   可以通过任务管理器获取运行的软件,然后根据句柄获取软件运行路径

    参照

    http://blog.csdn.net/wellwelcome/article/details/5679040


    http://blog.csdn.net/zx13525079024
    2011年10月31日 9:28
  • 不是运行的软件,我有可能是本地安装软件,但不在运行的
    2011年10月31日 9:29
  • 软件的启动名称和软件本身的物理启动文件名之间没有任何联系。比如软件 Microsoft Word 的启动名字叫 WinWord,Microsoft Excel 的叫 Excel。这个毫无规律的。
    Mark Zhou
    2011年10月31日 9:40
  • 我知道,所以通过注册表很难搞,不知道有没有什么其他方案。难道要用C++做底层开发?
    2011年10月31日 9:42
  • 底层开发也没用,这个没有统一的标准。你想知道的是所有人的家里门朝那边开这样的没有固定答案问题,造房子的时候门不一定朝正南或者正北的。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年10月31日 23:38
    版主
  • 我很奇怪的是,什么地方需要这样的需求。

    //呵呵


    我也有自己的签名档哦!
    2011年11月1日 1:23
  • 应该从这个路径下取的HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths,这样至少取到启动路径了。
    • 已标记为答案 MOSS无解 2011年11月1日 2:35
    2011年11月1日 2:35
  • 这个注册表位置不对的。WOW6432Node 是给 32 位程序在 64 位系统的虚拟注册表服务用的,这里的程序路径并不表示全部。还有一些没有通过标准 Windows Installer 安装的程序,如 PPStream,可能根本在注册表的 Installed Products 里面找不到。
    Mark Zhou
    2011年11月1日 8:39