Wo befindet sich der Windows-Befehl "Ausführen"?

13968
Garhoogin

Wo befindet sich das Windows-Dialogfeld "Ausführen"? Ich habe es geöffnet und den Task-Manager untersucht, aber er wird nur als Datei-Explorer angezeigt. Ich habe versucht, die Befehlszeilenargumente anzuzeigen, aber es zeigt nur C:\WINDOWS\Explorer.EXEim Gegensatz zu C:\WINDOWS\explorer.exe. Ich habe versucht, nach run.exe und so zu suchen, aber nichts gefunden .

Ich habe das Gefühl, es könnten nur Befehlszeilenargumente in explorer.exe übergeben werden, aber ich kann nicht sicher sein. Ist es eine eigene Datei? Könnte es ein Teil von explorer.exe sein?

Es wurde vorgeschlagen, dass dies eine doppelte Frage ist, also werde ich erklären, dass dies nicht der Fall ist: Ich frage nicht, wie der Dialog ausführbare Dateien findet, ich frage, wo sich Run selbst befindet.

5
Mögliches Duplikat von [Wie werden im Windows-Ausführungsdialog ausführbare Dateien gesucht?] (Http://superuser.com/questions/87372/how-does-the-windows-run-dialog-locate-executables) Run5k vor 7 Jahren 0

3 Antworten auf die Frage

9
DavidPostill

Wo befindet sich das Windows-Dialogfeld "Ausführen"?

Das Windows-Dialogfeld "Ausführen" befindet sich in c:\windows\system32\shell32.dll.

Der Dialog kann mit dem folgenden Befehl geöffnet werden:

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

Dies funktioniert sowohl auf 32-Bit- als auch auf 64-Bit-Windows.

Wow ... das funktioniert eigentlich. Es gibt keinen Text, was komisch ist. Garhoogin vor 7 Jahren 3
Das liegt daran, dass Sie (siehe meine Antwort) gerade in eine Bibliothek gegangen sind und eine beliebige Funktion, @Garhoogin, aufgerufen haben, und das ist nicht dasselbe (dh es fehlen einige Schritte), was passiert, wenn Sie das Dialogfeld manuell öffnen. Marcus Müller vor 6 Jahren 0
4
Marcus Müller

Es gibt keine solche Datei. Es ist buchstäblich nur eine Subroutine innerhalb einer anderen ausführbaren Datei oder Bibliothek (wahrscheinlich explorer.exe, oder sogar wahrscheinlicher shell32.dll).

Ein Fenster, das Sie sehen, entspricht nicht einer ausführbaren Datei. Beim Zeichnen eines Fensters werden nur Funktionen aufgerufen. Es gibt keinen Grund anzunehmen, dass für jedes angezeigte Fenster eine einzige EXE-Datei vorhanden ist oder dass Sie bestimmte Optionen an eine ausführbare Datei übergeben können, um ein bestimmtes Fenster anzuzeigen.

Mit dem "Ausführen" -Dialogfeld haben Sie möglicherweise Glück - ich glaube, es ist wahrscheinlich ein exportiertes Symbol (gelesen: eine extern aufrufbare Funktion) von shell32.dll, und Sie können es mit etwas wie aufrufen

rundll32.exe shell32.dll,# 
Ich vermute. Ich kann jedoch nicht herausfinden, welche Parameter im Ausführungsdialogfeld übergeben werden. Garhoogin vor 7 Jahren 0
wie gesagt, es gibt wahrscheinlich * keine solchen Parameter *. Sie können im Allgemeinen nicht davon ausgehen, dass es gibt. So funktioniert Software nicht. Marcus Müller vor 7 Jahren 1
Wenn explorer.exe ohne Parameter öffnen würde, woher sollte der Ausführungsdialog geöffnet werden? Garhoogin vor 7 Jahren 0
indem Sie derjenige sind, der Ihre Klicks / Tastendrücke erhält und darauf reagiert ?! Marcus Müller vor 7 Jahren 0
Tatsachenaussagen sind immer besser als wahrscheinliche Aussagen. Ramhound vor 7 Jahren 0
2
Tonny

Es gibt kein separates Programm. Es ist Funktion Nr. 61 in Shell32.dll.

Die Funktion heißt RunFileDlg und benötigt eine Reihe komplizierter Parameter, um anzugeben, welcher Befehl ausgeführt werden soll und wie er ausgeführt werden soll.

Explorer.exe (eigentlich die Anwendung, die den Windows-Desktop einschließlich der Option "Ausführen" im Startmenü behandelt) ruft diese Funktion einfach auf, um die harte Arbeit zu erledigen.
(Tatsächlich: Explorer ruft nur die Basisvariante auf. Die Funktion hat einige Optionen, die der Explorer eigentlich nicht verwendet.)

Sie können Ihr eigenes Programm in einer beliebigen Programmiersprache schreiben (solange Windows-DLL-Funktionen aufgerufen werden können), um RunFileDlg selbst aufzurufen.
Die gesamte Dokumentation dazu finden Sie auf der Microsoft Technet-Website. und googeln für shell32: RunFileDlg liefert Ihnen auch eine Reihe schöner Beispiele, wie das geht.