Como está sendo executado um programa que não está no meu caminho? [duplicado]

57

Possível duplicado:
Por que consigo executar um programa que não está na minha variável de ambiente PATH?

Eu estava ensinando a um colega de trabalho sobre% PATH% e descobri que, se eu executasse o "Firefox", ele funcionaria, mas fiquei surpreso ao ver que não estava no meu caminho.

o que estou perdendo?

Mathew
fonte
2
Depende do contexto. Se você estiver digitando "firefox" em uma linha de comando, o firefox.exe deverá estar no caminho ou nas pastas Windows ou Windows \ System32. Se você estiver digitando "Firefox" na caixa de diálogo Executar, o registro App Paths será usado, portanto o firefox.exe será registrado lá.
boot13
Obrigado boot13, eu não estava ciente das chaves de registro do App Paths.
Mathew

Respostas:

101

Se você estiver tentando executar um executável especificando apenas seu nome, o Windows procurará o arquivo nos seguintes locais :

  1. O diretório de trabalho atual.
  2. O Windowsdiretório somente (não subdiretórios são pesquisados).
  3. O Windows\System32diretório
  4. Diretórios listados na variável de ambiente PATH.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(também HKEY_CURRENT_USERdesde o Windows 7)

A Microsoft recomenda "registrar" aplicativos na App Pathssubchave para evitar a necessidade de aplicativos modificarem a PATHvariável de ambiente do sistema . O instalador do aplicativo registrará o executável.

JC2k8
fonte
3
Uma das melhores respostas para uma pergunta que eu já vi. +1
Everett
Foi isso, obrigado senhor. Aprenda algo novo todos os dias.
Mathew
8
@ Matthew De nada. Lembre-se de que a subchave "App Paths" também existe na seção HKCU para aplicativos que foram instalados apenas para um usuário .
JC2k8
11
Por isso, nunca precisei mexer no PATH até passar do desenvolvimento .NET para o desenvolvimento Java. Eu realmente nunca considerei por que tudo no desenvolvimento .NET "simplesmente funciona"!
Stephen Swensen
2
Isso é válido apenas para a caixa de diálogo Windows Run, no cmd.exe e no PowerShell apenas de 1 a 4. são usados, consulte também o comentário do boot13.
284 Alexander