- Запуск приложений (ShellExecute, ShellExecuteEx, ШЕЛЛЕКСЕКУТЕИНФО)
- Использование ShellExecute и ShellExecuteEx
- Команды объекта
- Использование ShellExecuteEx для предоставления служб активации с сайта
- Использование ShellExecute для запуска диалогового окна поиска
- Простой пример использования ShellExecuteEx
- Запуск команд Windows Shell, используя названия и объектов.
- Способ 1
- Способ 2
- Способ 3
Запуск приложений (ShellExecute, ShellExecuteEx, ШЕЛЛЕКСЕКУТЕИНФО)
После того, как приложение размещает файловый объект, для него часто приходится выполнять следующие действия. Например, приложению может потребоваться запустить другое приложение, позволяющее пользователю изменять файл данных. Если файл является исполняемым файлом, приложение может захотеть просто запустить его. В этом документе описывается, как использовать ShellExecute или ShellExecuteEx для выполнения этих задач.
Использование ShellExecute и ShellExecuteEx
Чтобы использовать ShellExecute или ShellExecuteEx, приложение должно указать объект файла или папки, к которому будет применена операция, и команду , указывающую операцию. Для ShellExecute присвойте эти значения соответствующим параметрам. Для ShellExecuteEx заполните соответствующие элементы структуры шеллексекутеинфо . Существует также несколько других элементов или параметров, которые можно использовать для точной настройки поведения двух функций.
Объекты файлов и папок могут быть частью файловой системы или виртуальных объектов, и их можно идентифицировать по путям или указателям на списки идентификаторов элементов (PIDL).
Команды объекта
Команды, доступные для объекта, по сути являются элементами, которые находятся в контекстном меню объекта. Чтобы узнать, какие команды доступны, просмотрите реестр в разделе
HKey _ _Корень классов \ CLSID \ \ \ команда оболочки
где _ CLSID объекта — это идентификатор класса (CLSID) объекта, а глагол — имя доступной команды. Подключ \ команды verb содержит данные, указывающие, что происходит при вызове этой команды.
Чтобы узнать, какие команды доступны для предопределенных объектов оболочки, просмотрите раздел реестра в разделе
HKey _ Классы _ корневого \ объекта _ имя класса \ \ команда оболочки
где _ имя объекта — это имя предопределенного объекта оболочки. Опять же, \ подраздел команды verb содержит данные, указывающие, что происходит при вызове этой команды.
Часто доступные команды включают:
Команда | Описание |
---|---|
изменение; | Запускает редактор и открывает документ для редактирования. |
поиск | Инициирует поиск, начиная с указанного каталога. |
open | Запускает приложение. Если этот файл не является исполняемым файлом, запускается связанное с ним приложение. |
Выводит файл документа. | |
properties | Отображает свойства объекта. |
запуск от имени | Запускает приложение от имени администратора. Контроль учетных записей (UAC) предложит пользователю подтвердить согласие на |
Запустите приложение с повышенными правами или введите учетные данные администратора, используемого для запуска | |
приложении Aha!. |
Каждая команда соответствует команде, которая будет использоваться для запуска приложения из окна консоли. Хорошим примером является команда Open , так как она обычно поддерживается. Для файлов exe программа Open просто запускает приложение. Однако чаще используется для запуска приложения, которое работает с определенным файлом. Например, файлы. txt могут быть открыты в Microsoft WordPad. Таким образом, команда Open для TXT-файла будет соответствовать примерно следующей команде:
При использовании ShellExecute или ShellExecuteEx для открытия TXT-файла Wordpad.exe запускается с указанным файлом в качестве аргумента. Некоторые команды могут иметь дополнительные аргументы, например флаги, которые можно добавить при необходимости для правильного запуска приложения. Дальнейшее обсуждение контекстных меню и глаголов см. в разделе расширение контекстных меню.
Как правило, попытка определить список доступных команд для определенного файла немного сложна. Во многих случаях можно просто установить для параметра Лпверб значение NULL, которое вызывает команду по умолчанию для типа файла. Эта процедура обычно эквивалентна установке лпверб в значение «Open», но некоторые типы файлов могут иметь разные команды по умолчанию. Дополнительные сведения см. в разделе расширение контекстных меню и справочная документация по ShellExecuteEx .
Использование ShellExecuteEx для предоставления служб активации с сайта
Службы цепочки сайтов могут управлять множеством поведений активации элементов. Начиная с Windows 8, можно указать указатель на цепочку сайтов, чтобы ShellExecuteEx для включения этих поведений. Чтобы предоставить сайт ShellExecuteEx:
- Укажите параметр см _ _ . флаг маски _ хинст _ — _ флаг сайта в элементе фмаск элемента шеллексекутеинфо.
- Укажите IUnknown в члене хинстапп объекта шеллексекутеинфо.
Использование ShellExecute для запуска диалогового окна поиска
Когда пользователь щелкает правой кнопкой мыши значок папки в проводнике Windows, один из пунктов меню — «Search» (Поиск). При выборе этого элемента оболочка запускает свою служебную программу поиска. Эта программа отображает диалоговое окно, которое можно использовать для поиска в файлах указанной текстовой строки. Приложение может программно запустить программу поиска для каталога путем вызова ShellExecuteс параметром «Find» в качестве параметра лпверб , а путь к каталогу — как параметр лпфиле . Например, следующая строка кода запускает программу поиска для каталога c: \ мипрограмс.
Простой пример использования ShellExecuteEx
В следующем примере консольного приложения показано использование ShellExecuteEx. Для ясности опущена большая часть кода проверки ошибок.
Приложение сначала извлекает ПИДЛ каталога Windows и перечисляет его содержимое до тех пор, пока не найдет первый файл. bmp. В отличие от предыдущего примера, ишеллфолдер:: жетдисплайнамеоф используется для получения имени синтаксического анализа файла вместо его отображаемого имени. Так как это папка файловой системы, имя синтаксического анализа — это полный путь, который необходим для ShellExecuteEx.
Запуск команд Windows Shell, используя названия и объектов.
Microsoft Windows Shell — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. Позволяет получить доступ к диалоговым окнам, к файловой системе, запускать программы и изменять системные настройки.
Для быстрого перехода к компонентам Windows используется команда shell.
GUID (Globally Unique Identifier) — уникальный 128-битный идентификатор. Использование GUID гарантирует, что две версии одного компонента могут иметь одно и то же имя, но быть отличимыми по GUID.
Microsoft применяет GUID в качестве идентификаторов для большого количества своих объектов. Зная GUID можно открыть многие компоненты Windows: элементы Панели управления, системные папки, различные программы и настройки.
Для запуска любого из объектов Windows, используя
где — идентификатор
В качестве примера, ниже показаны несколько способов запуска Панели управления.
Способ 1
Нажмите сочетание клавиш + R и в открывшемся окне Выполнить скопируйте и вставьте команду:
Нажмите кнопку ОК, откроется окно Панель управления.
Способ 2
Нажмите сочетание клавиш + S откроется боковая панель поиска, в строку поиска скопируйте и вставьте команду:
И нажмите клавишу Enter ↵ откроется окно Панель управления.
Способ 3
Нажмите сочетание клавиш + E откроется окно Этот компьютер (проводник), и в адресную строку проводника введите или вставьте заранее скопированную команду:
Нажмите клавишу Enter ↵, запустится окно Панель управления.
Вы можете поискать нужные Вам в разделе реестра HKEY_CLASSES_ROOT\\CLSID или воспользоваться таблицей №1.
Русское название элемента | Английское название элемента | Команда |
---|---|---|
Русское название элемента | Английское название элемента | Команда |
Win+Tab | Win+Tab | Shell. |
Fusion Cache | Fusion Cache | Shell. |
Internet Explorer | Internet Explorer | Shell. |
Автозапуск | AutoPlay | Shell. |
Автономные файлы | Offline Files | Shell. |
Администрирование | Administrative Tools | Shell. |
Библиотеки | Libraries | Shell. |
Биометрические устройства | Biometric Devices | Shell. |
Брандмауэр Windows | Windows Firewall | Shell. |
Восстановление | Recovery | Shell. |
Восстановление системы | System Restore | Shell. |
Все задачи | All Tasks | Shell. |
Все элементы панели управления | All Control Panel Items | Shell. |
Выполнить | Run | Shell. |
Гаджеты рабочего стола | Desktop Gadgets | Shell. |
Дата и Время | Date and Time | Shell. |
Датчик расположения и другие датчики | Location and Other Sensors | Shell. |
Диспетчер устройств | Device Manager | Shell. |
Диспетчер учетных данных | Credential Manager | Shell. |
Домашняя группа | HomeGroup | Shell. |
Домашняя группа — папка | HomeGroup folder | Shell. |
Защитник Windows | Windows Defender | Shell. |
Звук | Sound | Shell. |
Значки области уведомлений | Notification Area Icons | Shell. |
Игры | Games | Shell. |
Избранное | Favorites | Shell. |
Компоненты Windows | Windows Features | Shell. |
Компьютер | Computer | Shell. |
Корзина | Recycle Bin | Shell. |
Мои Документы | My Documents | Shell. |
Настройка доступа программ и умолчаний | Set Program access and Windows defaults | Shell. |
Недавние места | Recent Places | Shell. |
Общие | Public | Shell. |
Панель управления(заданного Вами вида) | Control Panel | Shell. |
Панель управления(Категория) | Control Panel(Category) | Shell. |
Параметры индексирования | Indexing Options | Shell. |
Параметры папок | Folder Options | Shell. |
Параметры планшетного компьютера | Tablet PC Settings | Shell. |
Параметры шрифта | Font settings | Shell. |
Переносные устройства | Portable Devices | Shell. |
Перо и сенсорные устройства | Pen and Touch | Shell. |
Персонализация | Personalization | Shell. |
Подключения к удаленным рабочим столам и приложениям RemoteApp | Remote Desktop Connection | Shell. |
Поиск Windows | Search | Shell. |
Получение программ | Get Programs | Shell. |
Принтеры | Printers | Shell. |
Программы и компоненты | Programs and Features | Shell. |
Программы по умолчанию | Default Programs | Shell. |
Рабочий стол | Desktop | Shell. |
Распознавание речи | Speech Recognition | Shell. |
Расположение по умолчанию | Default Location | Shell. |
Родительский контроль | Parental Controls | Shell. |
Свойства панели задач и меню «Пуск» | Taskbar and Start Menu | Shell. |
Свойства речи | Text to Speech | Shell. |
Свойства: Инициатор iSCSI | iSCSI Initiator Properties | Shell. |
Свойства: Интернет | Internet Properties | Shell. |
Свойства: Клавиатура | Keyboard Properties | Shell. |
Свойства: Мышь | Mouse Properties | Shell. |
Сетевые подключения | Network Connections | Shell. |
Сетевые подключения в Области уведомления | Network Connections in Notification area | Shell. |
Сеть | Network | Shell. |
Система | System | Shell. |
Сканеры и камеры | Scanners and Cameras | Shell. |
Справка и Поддержка | Windows Help and Support | Shell. |
Телефон и модем | Phone and Modem | Shell. |
Управление беспроводными сетями | Manage Wireless networks | Shell. |
Управление цветом | Color Management | Shell. |
Установленные обновления | Installed Updates | Shell. |
Устранение неполадок | Troubleshooting | Shell. |
Устройства Bluetooth | Bluetooth Devices | Shell. |
Устройства и принтеры | Devices and Printers | Shell. |
Учетные записи пользователей | User Accounts | Shell. |
Центр мобильности Windows | Windows Mobility Center | Shell. |
Центр обновления Windows | Windows Update | Shell. |
Центр поддержки | Action Center | Shell. |
Центр синхронизации | Sync Center | Shell. |
Центр специальных возможностей | Ease of Access Center | Shell. |
Центр управления сетями и общим доступом | Network and Sharing Center | Shell. |
Шифрование диска BitLocker | BitLocker Drive Encryption | Shell. |
Экран (размер текста) | Display (size of text) | Shell. |
Электропитание | Power Options | Shell. |
Язык и региональные стандарты | Region and Language | Shell. |
Для некоторых системных папок, Вы можете создать их копии, в любом, необходимом для Вас месте. Такие папки не будут занимать место на диске, а будут служить символическими ссылками на оригинальные. Для создания такой папки-ссылки:
1) Создайте в любом нужном Вам месте новую папку (Щелчок правой кнопкой мыши → Создать → Папку)
2) Переименуйте её следующим образом:
Все задачи — All Tasks.
Администрирование — Administrative Tools.
Библиотеки — Libraries.
Компьютер — Computer.
Корзина — Recycle Bin.
Персонализация — Personalize.
Принтеры — Printers and Faxes.
Программы — Programs Folder.
Сетевые подключения — Network Connections.
Сеть (WORKGROUP) — Network Places.
Учетные записи пользователей — User Accounts.
Принцип запуска команд Shell, используя имя объектов, намного легче. Данный способ не требует от Вас знания большого количества цифр и букв, и позволяет снизить величину ошибок при наборе команды. Его основное применение — открытие системных папок.
Например, для быстрого перехода в папку Панели Быстрого Запуска, которая присутствует в Windows, но не добавлена на Панель Задач, достаточно написать команду shell:Quick Launch. При выполнении команды в Проводнике будет открыта папка:
.
C:\\Users\\%UserName%\\AppData\\Roaming\\Microsoft\\Internet Explorer\\Quick Launch
Для запуска любого из объектов Windows, используя его имя, применяется команда:
Вы можете найти нужные Вам имена объектов в разделах ветки реестра:
Также можно воспользоваться таблицей №2.
Имя программы или папки | Адрес папки | Команда |
---|---|---|
Имя программы или папки | Адрес папки | Команда |
32-разрядный Internet Explorer | C:\\Program Files\\Internet Explorer или C:\\Program Files (x86)\\Internet Explorer | shell:InternetFolder |
Common Files (в 32-битной Windows 7) | C:\\Program Files\\Common Files | shell:ProgramFilesCommon |
Common Files (в 64-битной Windows 7) | C:\\Program Files\\Common Files | shell:ProgramFilesCommonX64 |
Common Files (в 64-битной Windows 7) | C:\\Program Files (x86)\\Common Files | shell:ProgramFilesCommonX86 |
Cookies | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\Cookies | shell:Cookies |
Credentials | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Credentials | shell:CredentialManager |
Crypto | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Crypto | shell:CryptoKeys |
DeviceMetadataStore | C:\\ProgramData\\Microsoft\\Windows\\DeviceMetadataStore | shell:Device Metadata Store |
Documents | C:\\Users\\Public\\Documents | shell:Common Documents |
Fonts (шрифты) | C:\\Windows\\Fonts | shell:Fonts |
Gadgets | C:\\Program Files\\Windows Sidebar\\Gadgets | shell:default Gadgets |
Gadgets | C:\\Users\\User-Name\\AppData\\Local\\Microsoft\\WindowsSidebar\\Gadgets | shell:Gadgets |
GameExplorer | C:\\ProgramData\\Microsoft\\Windows\\GameExplorer | shell:PublicGameTasks |
GameExplorer (Обозреватель игр) | C:\\Users\\User-Name\\AppData\\Local\\Microsoft\\Windows\\GameExplorer | shell:GameTasks |
History | C:\\Users\\User-Name\\AppData\\Local\\Microsoft\\Windows\\History | shell:History |
ImplicitAppShortcuts | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\ImplicitAppShortcuts | shell:ImplicitAppShortcuts |
Local | C:\\Users\\User-Name\\AppData\\Local | shell:Local AppData |
LocalLow | C:\\Users\\User-Name\\AppData\\LocalLow | shell:LocalAppDataLow |
Low | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\Cookies\\Low | shell:Cookies\\Low |
Network Shortcuts | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\ etworkShortcuts | shell:NetHood |
Printer Shortcuts | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\PrinterShortcuts | shell:PrintHood |
Program Files | C:\\Program Files | shell:ProgramFiles |
Program Files (x86) (в 64-битной Windows 7) | C:\\Program Files (x86) | shell:ProgramFilesX86 |
Program Files (в 64-битной Windows 7) | C:\\Program Files | shell:ProgramFilesX64 |
ProgramData | C:\\ProgramData | shell:Common AppData |
Protect | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Protect | shell:dpapiKeys |
Quick Launch (Быстрый запуск) | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\InternetExplorer\\Quick Launch | shell:Quick Launch |
Resources (содержит темы Windows) | C:\\Windows\\Resources | shell:ResourceDir |
Ringtones | C:\\ProgramData\\Microsoft\\Windows\\Ringtones | shell:CommonRingtones |
Roaming | C:\\Users\\User-Name\\AppData\\Roaming | shell:AppData |
SendTo (элементы контекстного меню Отправить) | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\SendTo | shell:SendTo |
System32 | C:\\Windows\\System32 | shell:System |
SystemCertificates | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\SystemCertificates | shell:SystemCertificates |
SysWOW64 | C:\\Windows\\SysWOW64 | shell:SystemX86 |
Templates | C:\\ProgramData\\Microsoft\\Windows\\Templates | shell:Common Templates |
Templates | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\Templates | shell:Templates |
Temporary Internet Files | C:\\Users\\User-Name\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files | shell:Cache |
User Pinned (Закрепленные элементы) | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\InternetExplorer\\Quick Launch\\User Pinned | shell:User Pinned |
User-Name (файлы Вашей учетной записи) | C:\\Users\\User-Name | shell:UsersFilesFolder |
User-Name (Ваш учетный профиль) | C:\\Users\\User-Name | shell:Profile |
Windows (главная папка системы) | C:\\Windows | shell:Windows |
Автозагрузка | C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup | shell:Common Startup |
Автозагрузка | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup | shell:Startup |
Администрирование | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools | shell:Administrative Tools |
Администрирование | C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools | shell:Common Administrative Tools |
Библиотеки | Библиотеки | shell:Libraries |
Библиотеки | Библиотеки | shell:UsersLibrariesFolder |
Видео | Библиотеки\\Видео | shell:VideosLibrary |
Временная папка для записи | C:\\Users\\User-Name\\AppData\\Local\\Microsoft\\Windows\\Burn\\Burn | shell:CD Burning |
Все элементы панели управления | Панель управления\\Все элементы панели управления | shell:ControlPanelFolder |
Главное меню | C:\\ProgramData\\Microsoft\\Windows\\Start Menu | shell:Common Start Menu |
Главное меню | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\StartMenu | shell:Start Menu |
Документы | Библиотеки\\Документы | shell:DocumentsLibrary |
Домашняя группа | Домашняя группа | shell:HomeGroupFolder |
Загрузки | C:\\Users\\User-Name\\Downloads | shell:downloads |
Згрузки | C:\\Users\\Public\\Downloads | shell:CommonDownloads |
Игры | Игры | shell:Games |
Избранное | C:\\Users\\User-Name\\Favorites | shell:Favorites |
Изображения | C:\\Users\\Public\\Pictures | shell:CommonPictures |
Изображения | C:\\Users\\User-Name\\Pictures | shell:My Pictures |
Изображения | Библиотеки\\Изображения | shell:PicturesLibrary |
Компьютер | Компьютер | shell:MyComputerFolder |
Контакты | C:\\Users\\User-Name\\Contacts | shell:Contacts |
Конфликты | Панель управления\\Все элементы панели управления\\Центрсинхронизации\\Конфликты | shell:ConflictFolder |
Корзина | Корзина | shell:RecycleBinFolder |
Мои видеозаписи | C:\\Users\\User-Name\\Videos | shell:CommonVideo |
Мои видеозаписи | C:\\Users\\User-Name\\Videos | shell:My Video |
Мои документы | C:\\Users\\User-Name\\Documents | shell:Personal |
Моя Музыка | C:\\Users\\Public\\Music | shell:CommonMusic |
Моя музыка | C:\\Users\\User-Name\\Music | shell:My Music |
Музыка | Библиотеки\\Музыка | shell:MusicLibrary |
Настройка синхронизации | Панель управления\\Все элементы панели управления\\Центр синхронизации\\Настройка синхронизации | shell:SyncSetupFolder |
Недавние документы | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\Recent | shell:Recent |
Образцы видео | C:\\Users\\Public\\Videos\\Sample Videos | shell:SampleVideos |
Образцы изображений | C:\\Users\\Public\\Pictures\\Sample Pictures | shell:SamplePictures |
Образцы музыки | C:\\Users\\Public\\Music\\Sample Music | shell:SampleMusic |
Общие | C:\\Users\\Public | shell:Public |
Папка с рингтонами Windows 7 | C:\\Users\\User-Name\\AppData\\Local\\Microsoft\\Windows\\Ringtones | shell:Ringtones |
Поиск Windows | search-ms: | shell:SearchHomeFolder |
Поиски (информация о поисках) | C:\\Users\\User-Name\\Searches | shell:Searches |
Получение программ | Панель управления\\Все элементы панели управления\\Получение программ | shell:AddNewProgramsFolder |
Пользователи | C:\\Users | shell:UserProfiles |
Принтеры | Все элементы панели управления\\Принтеры | shell:PrintersFolder |
Программы | C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs | shell:Common Programs |
Программы | C:\\Users\\User-Name\\AppData\\Roaming\\Microsoft\\Windows\\StartMenu\\Programs | shell:Programs |
Программы и компоненты | Панель управления\\Все элементы панели управления\\Программы и компоненты | shell:ChangeRemoveProgramsFolder |
Рабочий стол | C:\\Users\\Public\\Desktop | shell:Common Desktop |
Рабочий стол | C:\\Users\\User-Name\\Desktop | shell:desktop |
Результаты синхронизации | Панель управления\\Все элементы панели управления\\Центр синхронизации\\Результаты синхронизации | shell:SyncResultsFolder |
Сетевые подключения | Панель управления\\Все элементы панели управления\\Сетевые подключения | shell:ConnectionsFolder |
Сеть | Сеть | shell:NetworkPlacesFolder |
Сохраненные игры | C:\\Users\\User-Name\\Saved Games | shell:SavedGames |
Ссылки | C:\\Users\\User-Name\\Links | shell:Links |
Установленные обновления | Программы и компоненты\\Установленные обновления | shell:AppUpdatesFolder |
Центр синхронизации | Панель управления\\Все элементы панели управления\\Центр синхронизации | shell:SyncCenterFolder |
Чтобы создать ярлык, используя названия или
Например, для создания ярлыка папки Этот Компьютер, на рабочем столе нажмите правую кнопку мыши, в контекстном меню выберите Создать > Ярлык.
В поле Укажите расположение объекта введите: