Comment un programme qui n'est pas sur mon chemin est-il exécuté? [dupliquer]


57

Dupliquer possible:
Pourquoi suis-je capable d'exécuter un programme qui ne se trouve pas dans ma variable d'environnement PATH?

J'enseignais% PATH à un collègue et j'ai découvert que si je lance "Firefox", cela fonctionne, mais j'ai été surpris de constater que ce n'était pas sur mon chemin.

Qu'est-ce que je rate?


2
Ça dépend du contexte. Si vous entrez "firefox" à partir d'une ligne de commande, firefox.exe doit figurer dans le chemin ou dans les dossiers Windows ou Windows \ System32. Si vous entrez "Firefox" dans la boîte de dialogue Exécuter, le registre App Paths est utilisé. Firefox.exe y est donc enregistré.
boot13

Merci boot13, je ne connaissais pas les clés de registre des chemins d'accès d'applications.
Mathew

Réponses:


101

Si vous essayez d'exécuter un fichier exécutable en spécifiant uniquement son nom, Windows recherche le fichier aux emplacements suivants :

  1. Le répertoire de travail actuel.
  2. Le Windowsrépertoire uniquement (aucun sous-répertoire n'est recherché).
  3. Le Windows\System32répertoire.
  4. Répertoires répertoriés dans la variable d’environnement PATH.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(aussi HKEY_CURRENT_USERdepuis Windows 7)

Microsoft recommande en fait d’inscrire des applications dans la App Pathssous - clé afin d’éviter que celles-ci n’aient à modifier la PATHvariable d’environnement système . Le programme d'installation de l'application va enregistrer l'exécutable.


3
Une des meilleures réponses à une question que j'ai jamais vue. +1
Everett

C'était ça, merci monsieur. Apprendre quelque chose de nouveau chaque jour.
Mathew

8
@ Matthieu, de rien. N'oubliez pas que la sous-clé "App Paths" existe également dans la ruche HKCU pour les applications installées pour un seul utilisateur .
JC2k8

1
C’est la raison pour laquelle je n’ai jamais vraiment eu à travailler avec PATH tant que je n’étais pas passé du développement .NET au développement Java. Je n'ai jamais vraiment réfléchi à la raison pour laquelle tout dans le développement .NET "fonctionne"!
Stephen Swensen

2
Cela n'est vrai que pour la boîte de dialogue Exécuter Windows, dans cmd.exe et powershell uniquement 1. à 4. sont utilisés, voir aussi le commentaire de boot13.
Alexander
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.