Недокументированные и малоизвестные возможности Windows XP
Шрифт:
■ rundll32.exe dsquery.dll, OpenSavedDsQuery «файл запроса к службе каталогов ActiveDirectory»— при вызове команды происходит попытка выполнить файл запроса к каталогу Active Directory.
■ rundll32.exe msconf.dll, NewMediaPhone «путь к файлу»— открыть данный файл телефонии. Эта команда используется программой NetMeeting для открытия соответствующих файлов.
■ rundll32.exe msconf.dll, OpenConfLink «путь к файлу» — команда также используется программой NetMeeting. Именно с помощью этой команды создаются ярлыки различных конференций (для автоматического соединения с другими сетевыми компьютерами).
■ rundll32.exe netshell.dll, InvokeDunFile — открыть DUN-файл (Dialup Networking File).
■ rundll32.exe SHDOCVW.dll, OpenURL
■ rundll32.exe shell32.dll, Control_RunDLL «имя CPL или DLL-файла» — вызов данной команды приводит к запуску соответствующего CPL-файла или определенной функции файла DLL. Например, после вызова команды rundll32.exe shell32.dll, Control_RunDLL main.cpl откроется апплет Мышь. Если вы разочарованы, то могу сказать еще об одной особенности работы данной функции — с ее помощью можно указать вкладку, на которой будет открыт апплет. Например, вызов команды rundll32.exe shell32.dll, Control_RunDLL main.cpl, ,2 приведет к открытию апплета Мышь на вкладке Параметры указателя. Аналогично можно открывать и любые другие вкладки различных апплетов (при этом вкладки нумеруются, начиная с нуля).
Функция Control_RunDLL используется и в таких командах:
• rundll32.exe shell32.dll, Control_RunDLL desk.cpl desk, @Appearance — открыть диалоговое окно Свойства: Экран на вкладке Оформление;
• rundll32.exe shell32.dll, Control_RunDLL desk.cpl desk, @Appearance /Action:OpenMSTheme /file:«путь к файлу темы рабочего стола»и rundll32.exe shell32.dll, Control_RunDLL desk.cpl desk, @Appearance /Action:OpenTheme /file:«путь к файлу темы рабочего стола» — установить файл стиля оформления Windows XP;
• rundll32.exe shell32.dll, Control_RunDLL desk.cpl desk, @Desktop — открыть диалог Свойства: Экран на вкладке Рабочий стол;
• rundll32.exe shell32.dll, Control_RunDLL desk.cpl desk, @Settings — открыть диалог Свойства: Экран на вкладке Параметры;
• rundll32shell32.dll, Control_RunDLL NetSetup.cpl,@0, WNSW — отобразить окно Мастера беспроводной сети;
• rundll32 shell32.dll, Control_RunDLL NetSetup.cpl — отобразить окно Мастера настройки сети.
Особо стоит сказать о двух командах Control_RunDLL, использующих для своей работы библиотеки Windows:
• rundll32.exe shell32.dll, Control_RunDLL hotplug.dll — вызов данной команды отображает диалог «горячего» удаления внешнего устройства (рис. 2.4).
Рис. 2.4. Результат выполнения команды rundll32.exe shell32.dll, Control_RunDLL hotplug.dll
• rundll32.exe shell32.dll, Control_RunDLL input.dll — позволяет вызвать диалог Язык и службы текстового ввода.
ПРИМЕЧАНИЕ
При выполнении приведенной выше команды без указания какого-либо CPL или DLL-файла будет открыто окно Панель управления.
■ rundll32.exe shell32.dll, OpenAs_RunDLL «путь и имя файла» — с помощью данной команды можно отобразить диалоговое окно Открыть с помощью для открытия указанного в параметре функции файла. Например, можно открыть исполняемый файл программы в Блокноте или с помощью другой программы (по умолчанию исполняемые файлы нельзя вызывать с помощью диалога Открыть с помощью).
■ rundll32.exe shimgvw.DLL, ImageView_Fullscreen «путь к файлу изображения» — позволяет открыть указанный файл изображения с помощью программы просмотра изображений и факсов.
Выполнение команд
Существует еще одна интересная возможность, которую можно использовать при разработке файлов сценариев, — выполнение
Можно также воспользоваться разновидностью приведенной выше команды — rundll32.exe ADVPACK.dll, UserUnInstStubWrapper «подкаталог». После ее вызова будет выполнена строка параметра RealStubPath, расположенного в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\«подкаталог».Restore. Например, выполнение команды rundll32.exe ADVPACK.dll, UserUnInstStubWrapper para будет использовать параметр из ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Active Setup\Installed Components\para.Restore.
Кроме функций библиотеки ADVPACK.dll, существует еще одна возможность запуска команд из реестра — использование ветви реестра HKEY_CURRENT_USER\ Software\Microsoft\Windows\CurrentVersion\RunOnceEx (данная ветвь присутствует и в корневом разделе HKEY_LOCAL_MACHINE). По умолчанию ее содержимое выполняется только при следующем входе пользователя в систему, хотя существует возможность сказать системе, чтобы она обработала содержимое этой ветви немедленно. При этом все команды из ветви после своего выполнения автоматически удаляются. Следует также учитывать одну особенность ветви — если в ней будет определено несколько запусков программ, то все они будут запускаться последовательно. Сначала запустится первая программа, после того, как пользователь ее закроет, запустится вторая программа и т.д.
Формат содержимого данной ветви немного отличается от формата подобных ей ветвей, направленных на выполнение команд при входе пользователя в систему (например, ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run). Каждая программа или команда, которая должна быть запущена, записывается в отдельный раздел данной ветви реестра — название раздела не имеет значения, но лучше последовательно пронумеровать эти разделы, чтобы система могла легко определить, какая программа должна запускаться первой. Параметр По умолчанию каждого раздела определяет название, которое будет отображаться в диалоге индикации установки при выполнении программы, определенной в соответствующем разделе реестра. При этом если параметр По умолчанию не определен, то в диалоге индикации не будет никакой информации о запуске данной программы или команды, хотя она будет запущена. Сама же программа или команда записывается в значении строкового параметра соответствующего раздела (название параметра не имеет значения). В разделе можно определить несколько команд, записав их в несколько строковых параметров, — все эти команды будут выполняться последовательно на данном шаге установки.