71 votes

Comment la boîte de dialogue Exécuter sait-elle où se trouvent les applications ?

En tant qu'utilisateur expérimenté, j'utilise fréquemment la boîte de dialogue Exécuter.

Je peux comprendre pourquoi les commandes suivantes fonctionnent, puisqu'elles se trouvent dans la section PATH variable d'environnement.

mspaint
diskmgmt.msc
explorer

Ces commandes fonctionnent également dans CMD.

Les commandes ci-dessous fonctionnent dans run, mais elles ne sont pas dans le fichier PATH et ils ne fonctionnent pas dans CMD.

firefox
winword
iexplore

Comment Run sait-il où se trouvent ces fichiers ?

88voto

w32sh Points 10300

Lorsque vous exécutez une commande à partir de la boîte de dialogue Exécuter, le système consulte le fichier App Paths clé de registre ici :

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

EXEMPLE

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\filezilla.exe

(default) Les données de la valeur ont le chemin complet de l'exécutable.

S'il n'est pas trouvé, il examine chaque dossier inclus dans le PATH.

Alors que l'invite de commande ne fait pas référence à ces clés de registre. Il recherche uniquement dans le PATH.

4voto

balpha Points 18387

La réponse de w32sh signale correctement que les clés supplémentaires recherchées par la boîte de dialogue Exécuter sont ici :

  • HKEY_CURRENT_USER \SOFTWARE\Microsoft\Windows\CurrentVersion\App Chemins d'accès
  • HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\App Chemins d'accès

Il y a documentation officielle pour ces chemins .

Un fait important concernant ces clés est que le nom de la clé (par exemple "filezilla.exe") ne doit en aucun cas correspondre au chemin complet. Sous Windows 7, la valeur peut même être une simple ligne de commande, similaire à ce qui peut être utilisé comme "cible" d'un raccourci.

Par exemple, j'avais ceci dans mon registre :

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\jedit.exe]
@="\"C:\\WINDOWS\\system32\\javaw.exe\" -Xms24M -Xmx512M -jar \"C:\\Program Files\\jEdit\\jedit.jar\" -reuseview"

Je n'arrive pas à faire fonctionner cette fonction sous Windows 10, mais vous pouvez toujours pointer vers n'importe quel fichier, y compris un fichier de commandes, par ex.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\jedit.exe]
@="C:\\Program Files\\jEdit\\run-jedit.bat"

Cela vous permet de taper "jedit" ou "jedit". C:\foo\bar\something.txt " pour exécuter la JVM avec les options appropriées et lancer/réutiliser jEdit .

D'après ce que je vois, le nom de la clé doit se terminer par ".exe", donc pour créer un alias de "abc", vous créez une clé "abc.exe", même si elle ne pointe pas vers un fichier ".exe".

-1voto

Uluk Biy Points 15426

Il y a une variable d'environnement appelée PATH, ou %PATH% dans la ligne de commande. Elle contient une série d'emplacements à parcourir.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X