Où se trouve la commande Windows Run?

7

Où se trouve la boîte de dialogue Exécuter Windows? Je l'ai ouvert et examiné le gestionnaire de tâches, mais il apparaît simplement comme Explorateur de fichiers. J'ai essayé de montrer les arguments en ligne de commande mais cela ne montre C:\WINDOWS\Explorer.EXEque par opposition à C:\WINDOWS\explorer.exe. J'ai essayé de rechercher run.exe et autres, mais je n'ai rien trouvé .

J'ai l'impression que ce ne sont peut-être que des arguments de ligne de commande passés à explorer.exe, mais je n'en suis pas certain. Est-ce son propre fichier? Pourrait-il faire partie de explorer.exe?

Il a été suggéré qu'il s'agit d'une question en double. J'expliquerai donc que ce n'est pas le cas: je ne demande pas comment le dialogue local localise les exécutables, je demande où se trouve lui-même Run.

Garhoogin
la source

Réponses:

12

Où se trouve la boîte de dialogue Exécuter Windows?

La boîte de dialogue Exécuter Windows est une ressource située dans c:\windows\system32\shell32.dll.

La boîte de dialogue peut être ouverte en exécutant la commande suivante:

c:\windows\system32\rundll32.exe shell32.dll,#61

Cela fonctionne à la fois sur Windows 32 bits et 64 bits.

DavidPostill
la source
3
Wow ... ça marche vraiment. Il n'y a pas de texte, ce qui est bizarre.
Garhoogin
C'est parce que (voyez ma réponse) vous venez d'entrer dans une bibliothèque et avez appelé une fonction arbitraire, @Garhoogin, et ce n'est pas la même chose (c'est-à-dire qu'il manque quelques étapes) de ce qui se passe lorsque vous ouvrez manuellement cette boîte de dialogue.
Marcus Müller
5

Il n'y a pas de tel fichier. Il s'agit littéralement d'un sous-programme au sein d'un autre exécutable ou d'une autre bibliothèque (probablement, explorer.exevoire plus probable shell32.dll).

Une fenêtre visible ne correspond pas à un exécutable. Dessiner une fenêtre n’appelle que des fonctions. Il n'y a aucune raison de supposer qu'il y aurait un seul fichier .exe pour chaque fenêtre que vous voyez ou que vous pouvez transmettre des options spécifiques à un exécutable pour afficher une fenêtre spécifique!

Avec la boîte de dialogue "Exécuter", vous pourriez avoir de la chance - je pense que c'est probablement un symbole exporté (lire: une fonction appelable de manière externe) de shell32.dll, et vous pouvez l'appeler en utilisant quelque chose comme

rundll32.exe shell32.dll,#{ID of Symbol}
Marcus Müller
la source
Je suppose. Mais je ne peux pas comprendre quels paramètres sont passés pour aboutir à la boîte de dialogue d'exécution.
Garhoogin
1
comme, a dit, il n'y a probablement pas de tels paramètres . Vous ne pouvez généralement pas supposer qu'il y en a. Ce n'est pas comme ça que le logiciel fonctionne.
Marcus Müller
Si explorer.exe devait s'ouvrir sans paramètre, comment pourrait-il savoir ouvrir la boîte de dialogue d'exécution?
Garhoogin
en étant celui qui reçoit vos clics / touches et réagit à cela?!
Marcus Müller
Les déclarations factuelles sont toujours meilleures que les déclarations probables.
Ramhound
2

Il n'y a pas de programme séparé. C'est la fonction nbr. 61 dans Shell32.dll.

La fonction s'appelle RunFileDlg et prend un tas de paramètres compliqués pour spécifier quelle commande à exécuter et comment l’exécuter.

Explorer.exe (qui est en fait l'application qui gère le bureau Windows, y compris la gestion de l'option "Exécuter" dans le menu Démarrer) appelle simplement cette fonction pour effectuer le travail difficile.
(En fait, l'explorateur appelle uniquement la variante de base. La fonction contient des options que l'explorateur n'utilise pas réellement.)

Vous pouvez écrire votre propre programme dans le langage de programmation de votre choix (dans la mesure où il permet d'appeler des fonctions DLL Windows) pour appeler vous-même RunFileDlg.
Toute la documentation à ce sujet est disponible sur le site Web de Microsoft Technet. et googler pour shell32: RunFileDlg vous donnera également un tas de beaux exemples comment le faire.

Tonny
la source