5

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

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

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

3 ответа3

9

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

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

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

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

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

4

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

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

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

rundll32.exe shell32.dll,#{ID of Symbol}
2

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .