Где находится команда запуска Windows?

13800
Garhoogin

Где находится диалоговое окно Windows Run? Я открыл его и проверил диспетчер задач, но он просто отображается как File Explorer. Я попытался показать аргументы командной строки, но это просто показывает C:\WINDOWS\Explorer.EXEв отличие от C:\WINDOWS\explorer.exe. Я пытался найти run.exe и тому подобное, но ничего не нашел .

У меня такое ощущение, что это могут быть просто аргументы командной строки, передаваемые в explorer.exe, но я не уверен. Это собственный файл? это может быть частью explorer.exe?

Было высказано предположение, что это дублирующий вопрос, поэтому я объясню, что это не так: я не спрашиваю, как диалоговое окно находит исполняемые файлы, я спрашиваю, где находится сам Run.

5
Возможный дубликат [Как диалоговое окно запуска Windows находит исполняемые файлы?] (Http://superuser.com/questions/87372/how-does-the-windows-run-dialog-locate-executables) Run5k 7 лет назад 0

3 ответа на вопрос

9
DavidPostill

Где находится диалоговое окно Windows Run?

Диалоговое окно Windows Run - это ресурс, расположенный в c:\windows\system32\shell32.dll.

Диалог можно открыть, выполнив следующую команду:

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

Это работает как на 32-битной, так и на 64-битной Windows.

Вау ... это на самом деле работает. Там нет текста, что странно. Garhoogin 7 лет назад 3
Это потому, что (см. Мой ответ) вы просто вошли в библиотеку и вызвали произвольную функцию @Garhoogin, и это не то же самое (т. Е. В нем пропущено несколько шагов) того, что происходит, когда вы открываете этот диалог вручную. Marcus Müller 6 лет назад 0
4
Marcus Müller

Там нет такого файла. Это буквально просто подпрограмма в каком-то другом исполняемом файле или библиотеке (возможно explorer.exe, или даже более вероятно shell32.dll).

Окно, которое вы видите, не равно исполняемому файлу. Рисование окна - это просто вызов функций. Нет никаких оснований предполагать, что для каждого окна, которое вы видите, будет один .exe или что вы можете передать определенные параметры исполняемому файлу, чтобы показать определенное окно!

С диалоговым окном «Выполнить» вам может повезти - я думаю, что это, вероятно, экспортированный символ (читай: внешне вызываемая функция) shell32.dll, и вы можете вызвать его, используя что-то вроде

rundll32.exe shell32.dll,# 
Похоже. Но я не могу понять, какие параметры передаются, чтобы привести к диалогу запуска. Garhoogin 7 лет назад 0
поскольку, сказал, вероятно * нет таких параметров *. Вы не можете вообще предположить, что есть. Это не так, как работает программное обеспечение. Marcus Müller 7 лет назад 1
Если файл explorer.exe открывается без параметров, как он узнает, как открыть диалоговое окно запуска? Garhoogin 7 лет назад 0
будучи тем, кто получает ваши клики / нажатия клавиш и реагирует на это ?! Marcus Müller 7 лет назад 0
Фактические утверждения всегда лучше, чем вероятные. Ramhound 7 лет назад 0
2
Tonny

Там нет отдельной программы. Это функция нбр. 61 в Shell32.dll.

Функция называется RunFileDlg и принимает несколько сложных параметров, чтобы указать, какую команду запустить и как ее запустить.

Explorer.exe (на самом деле это приложение, которое обрабатывает рабочий стол Windows, включая обработку параметра «Выполнить» в меню «Пуск»), просто вызывает эту функцию для выполнения тяжелой работы.
(На самом деле: Explorer вызывает только базовый вариант. У функции есть некоторые параметры, которые Explorer фактически не использует.)

Вы можете написать свою собственную программу на любом языке программирования, который вам нравится (если это позволяет вызывать функции Windows DLL), чтобы вызывать RunFileDlg самостоятельно.
Всю документацию по этому вопросу можно найти на веб-сайте Microsoft Technet. и поиск в Google для shell32: RunFileDlg также даст вам несколько хороших примеров, как это сделать.