A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser, uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade.
A questão
O leitor super usuário mt025 quer saber como o Diálogo de Execução sabe onde estão os aplicativos que não estão no sistema PATH do Windows:
As a power user, I frequently use the Run Dialog. I can understand why the following commands work, as they are in the PATH environment variable.
- mspaint
- diskmgmt.msc
- explorer
These commands also work in CMD.
The commands below work in the Run Dialog, but they are not in the PATH environment variable, and they do not work in CMD.
- firefox
- winword
- iexplore
How does Run know where these files are?
A resposta
Colaborador do SuperUser O w32sh tem a resposta para nós:
When you execute a command from the Run Dialog, the system looks at the App Paths registry keys here:
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionApp Paths
and
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp Paths
Example
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionApp Pathsfilezilla.exe
(Default) value data has the full path to the executable. If it is not found, it looks at each folder included in the PATH, whereas CMD (the Command Prompt) does not reference these registry keys, it only searches the PATH.
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.