本文总结了查找执行文件全路径的几种方法。
在我们的应用中,仅知道程序名称(例如:FastMerge),想要知道程序的全路径(例如:C:\FastMerge\FastMerge.exe)。有什么办法呢?当然最简单粗暴的方法就是全盘扫描,但是这显然不是我们想要的方法。下面就介绍几种比较实用便捷的查找方法。
一:注册表App Paths
在windows系统中,我们通过“Win+R”组合键可以打开运行对话框,在对话框中输入程序名就能直接运行程序(如下图)。
也就是系统是可以通过程序名找到执行文件的,那这个路径信息是在哪里的呢?Windows系统是通过注册表来保存这个信息的,主要在以下几个地方:
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\ App Paths
\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
对于所有注册了App Paths项的程序,都可以在这些位置找到程序的执行文件路径。但是,并非所有的程序都一定有这个注册信息。如果在这里没有找到该怎么办呢?我们接着看下面两种方法。
二:注册表Uninstall
通过安装包安装的程序(非绿色版),都会在注册表中生成对应的卸载信息(未遇到但不排除有没卸载信息的情况)。卸载信息在注册表中主要在下面几个地方:
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\ App Paths
\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
通过卸载信息,我们可以找到卸载路径(UninstallString),或者在卸载注册信息里面有些也会有安装路径(InstallLocation,如下图)。
如果有InstallLocation信息,直接在目录中查询就可以找到执行文件。如果只有UninstallString信息,可以尝试在对应的目录下查询执行文件,通常也是能找到的。但是对于个别程序来说,可能卸载文件目录与执行文件目录不存在相同的上级目录。如果遇到这种情况,我们还可以尝试其他方法。
三:开始菜单
在Windows系统的开始菜单中,我们可以直接启动程序。所以,对于这些程序,我们也可以通过开始菜单来查找到执行文件路径。在路径:C:\ProgramData\Microsoft\Windows\Start Menu\Programs中保存有开始菜单中的程序快捷方式文件。通过查询快捷文件的信息可以找到对应的执行文件全路径。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。