例如我使用以下命令通过 Firefox 启动 superuser.com:
start firefox http://superuser.com
“start” 如何知道我的 firefox.exe 在哪里?我猜它是从注册表中读取的(它未在我的 PATH 中定义),但是启动命令和操作系统的注册表是如何互连的?究竟使用了哪些注册表?
答案1
是的,这些信息存储在注册表中。
钥匙
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
每个应用程序都有子键,您无需在路径中即可直接运行。
该子项firefox.exe
有两个值:
(Default) C:\Program Files\Mozilla Firefox\firefox.exe
Path C:\Program Files\Mozilla Firefox\
第一个值指定可执行文件的完整路径,第二个值指定它应该在其中运行的目录。
应用程序注册 (Windows)详细解释在哪里Windows 将搜索火狐可执行文件:
当。。。的时候ShellExecuteEx函数被调用时,其内容是可执行文件的名称lp文件参数,函数会在多个位置查找文件。我们建议在应用程序路径注册表子项。这样做可以避免应用程序修改系统 PATH 环境变量。
该文件位于以下位置:
- 当前工作目录。
- 这视窗仅目录(不搜索子目录)。
- 这Windows\System32目录。
- PATH 环境变量中列出的目录。
- 受到推崇的:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App 路径