AutoHotkey仅用.exe名称启动程序的判定规则及路径性能差异
一、两款程序启动逻辑差异的原因
Windows系统查找可执行文件时,除了遍历Path环境变量中定义的目录,还会检查App Paths注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths以及当前用户对应路径下的注册表条目。
- 网易邮箱大师(mailmaster)安装时会默认在App Paths中写入自身exe的映射记录,因此就算没有加入Path,AHK的
Run命令也能通过注册表记录找到对应的可执行文件路径完成启动。 - QQ音乐(QQMusic)安装时默认不会写入App Paths注册表项,所以只传exe名时系统无法定位到文件位置,就会抛出找不到程序的错误。
二、两种启动方式的性能对比
传入完整路径启动的速度更快。
只传入exe名称启动时,系统会按优先级依次搜索当前工作目录、系统目录、Windows目录、所有Path目录、App Paths注册表项,经过多轮匹配才能定位到目标文件;而传入完整路径时系统会直接跳转至目标路径加载可执行文件,完全跳过搜索流程,启动速度更快,在Path配置目录较多的环境下速度差异会更明显。
内容的提问来源于stack exchange,提问作者Wenfang Du
相关产品推荐
相关产品推荐

