Структура SHELLEXECUTEINFO

Type SHELLEXECUTEINFO
   cbSize As Long
   fMask As Long
   hwnd As Long
   lpVerb As String
   lpFile As String
   lpParameters As String
   lpDirectory As String
   nShow As Long
   hInstApp As Long
   lpIDList As Long
   lpClass As String
   hkeyClass As Long
   dwHotKey As Long
   hIcon As Long
   hProcess As Long
End Type

Структура SHELLEXECUTEINFO содержит информацию для функции ShellExecuteEx

Состав структуры

cbSize
Размер структуры в байтах
fMask
Комбинация флагов, определяющих используемую часть структуры:
SEE_MASK_CLASSKEY = &H3Используется hkeyClass
SEE_MASK_CLASSNAME = &H1Используется lpClass
SEE_MASK_CONNECTNETDRV = &H80Проверка на расшаренность файла и связь с диском. lpFile является универсальным именем (UNC) файла в сети
SEE_MASK_DOENVSUBST = &H200Расширяет среду переменных окружения в lpDirectory или lpFile
SEE_MASK_FLAG_DDEWAIT = &H100If ShellExecuteEx starts a DDE conversation, wait for that conversation to finish before the function returns.
SEE_MASK_FLAG_NO_UI = &H400Не показывать диалоговое окно ошибки в случае ее возникновения
SEE_MASK_HOTKEY = &H20Используется dwHotKey
SEE_MASK_ICON = &H10Используется hIcon
SEE_MASK_IDLIST = &H4Используется lpIDList
SEE_MASK_INVOKEIDLIST = &HCИспользуется lpIDList
SEE_MASK_NOCLOSEPROCESS = &H40Используется hProcess
hwnd
Дескриптор окна, вызывающего функцию ShellExecuteEx
lpVerb
Строка, определяющее действие с файлом lpFile. Несколько примеров применения:
"explore"Если lpFile имя файла, то открывает его в Проводнике
"open"Открывает lpFile с помощью связанной с этим типом файла программой. Открытие исполняемых файлов запускает файл
"print"Печать lpFile с использованием связанной с печатью программой
lpFile
Имя файла для открытия, печати, запуска и других операций lpVerb
lpParameters
Дополнительные параметры. Обычно используется как опции командной строки
lpDirectory
Путь используемой папки. Если параметр не определен, то используется текущая папка
nShow
Один из флагов, определяющих вид окна:
SW_HIDE = 0Скрыть окно
SW_MAXIMIZE = 3Развернуть окно
SW_MINIMIZE = 6Свернуть окно
SW_RESTORE = 9Восстановить окно
SW_SHOW = 5Показать окно
SW_SHOWMAXIMIZED = 3Показать открытое окно развернутым
SW_SHOWMINIMIZED = 2Показать открытое окно свернутым
SW_SHOWMINNOACTIVE = 7Показать открытое окно свернутым,но не активировать его
SW_SHOWNA = 8Показать открытое окно в текущем состоянии, но не активировать его
SW_SHOWNOACTIVATE = 4Показать открытое окно в текущих размерах и позиции, но не активировать его
SW_SHOWNORMAL = 1Показать открытое окно и активировать его (как обычно)
hInstApp
Если ShellExecuteEx отработала успешно, то параметр получает дескриптор экземпляра приложения. В случае ошибки получает один из следущих флагов, определющих тип ошибки:
SE_ERR_ACCESSDENIED = 5В доступе отказано
SE_ERR_ASSOCINCOMPLETE = 27Нет информации об ассоциации файла
SE_ERR_DDEBUSY = 30Операция DDE занята
SE_ERR_DDEFAIL = 29Операция DDE не прошла
SE_ERR_DDETIMEOUT = 28The DDE operation timed out
SE_ERR_DLLNOTFOUND = 32Требуемый DLL не найден
SE_ERR_FNF = 2Файл не найден
SE_ERR_NOASSOC = 31Нет ассоциированнй программы для требуемого действия
SE_ERR_OOM = 8Недостаточно памяти
SE_ERR_PNF = 3Путь не найден
SE_ERR_SHARE = 26Расшаренный файл не открывется
lpIDList
Указатель на структуру ITEMIDLIST (PIDL), определяющую файл для запуска. Данный параметр используется, если fMask содержит SEE_MASK_IDLIST или SEE_MASK_INVOKEIDLIST
lpClass
Имя класса файла или глобальный идентификатор (GUID). Данный параметр используется, если fMask содержит SEE_MASK_CLASSNAME
hkeyClass
Дескриптор ключа реестра. Данный параметр используется, если fMask содержит SEE_MASK_CLASSKEY
dwHotKey
Горячая клавиша, ассоциированная с приложением. Младшее слово является виртуальным кодом клавиши, а старшее слово - комбинация следующих флагов:
HOTKEYF_ALT = &H4Клавиша Alt как модификатор
HOTKEYF_CONTROL = &H2Клавиша Ctrl как модификатор
HOTKEYF_EXT = &H8Дополнительная клавиша как модификатор
HOTKEYF_SHIFT = &H1Клавиша Shift как модификатор
Данный параметр используется, если fMask содержит SEE_MASK_HOTKEY
hIcon
Дескриптор значка, используемого для класса файла. Данный параметр используется, если fMask содержит SEE_MASK_ICON
hProcess
Дескриптор процесса. Данный параметр используется, если fMask содержит SEE_MASK_NOCLOSEPROCESS

Используется в

ShellExecuteEx