Функция ShellExecute

Declare Function ShellExecute Lib "shell32" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
ShellExecute используется в случаях, когда вы хотите, чтобы WINDOWS сама решала, как обрабатывать тот или иной документ по имени этого документа. Функция способна открывать, печатать файл или запускать программу. Под Win 95/98/ME эта функция также откроет папку Мой компьютер или Проводник с указанным каталогом. Если выполняющая программа определена, Windows запустит ту программу. Если файл документа определен, Windows откроет или напечатает его, используя связанную программу

Возвращаемое значение

В успешном случае функция возвращает значение большее, чем 32. В случае ошибки функция возвратит значение меньшее или равное 32 или одно из следующих значени, определяющих ошибку

ERROR_FILE_NOT_FOUND = 2
Указанный файл не найден
ERROR_PATH_NOT_FOUND = 3
Указанный путь не найден
ERROR_BAD_FORMAT = 11
Указанный исполняемый файл (.EXE) так или иначе недействителен
SE_ERR_ACCESSDENIED = 5
только для Win 95/98: Windows отклонил доступ к указанному файлу
SE_ERR_ASSOCINCOMPLETE = 27
Ассоциация имени файла является или неполной или недействительной
SE_ERR_DDEBUSY = 30
Операция ПРЯМОГО ВВОДА ДАННЫХ(DDE) не может работать, потому что другие действия ПРЯМОГО ВВОДА ДАННЫХ находятся в процессе
SE_ERR_DDEFAIL = 29
Операция ПРЯМОГО ВВОДА ДАННЫХ потерпела неудачу
SE_ERR_DDETIMEOUT = 28
Операция DDE не была закончена, потому что истекло время запроса
SE_ERR_DLLNOTFOUND = 32
только для Win 95/98: Указанный файл DLL не найден
SE_ERR_FNF = 2
то же,что и ERROR_FILE_NOT_FOUND
SE_ERR_NOASSOC = 31
Нет никакой программы, связанной с указанным типом файла
SE_ERR_OOM = 8
только для Win 95/98: Windows имеет недостаточную память, чтобы исполнить операцию
SE_ERR_PNF = 3
то же, что и ERROR_PATH_NOT_FOUND
SE_ERR_SHARE = 26
Произошла ошибка совместного доступа

Параметры

hwnd
Дескриптор окна, вызывающего функцию
lpOperation
Строка определяющая действие, которое будет выполнено. Набор доступных действий зависит от специфического файла или папки. Набор включает команды, перечисленные в контекстном меню контекста и в системном реестре
"open"
Открывает файл или запускают программу (или каталог в Win 95/98)
"edit"
Открывает редактор. Если lpFile не файл документа, функция потерпит неудачу
"print"
Печатает документ. Если lpFile не является файлом документа, то функция потерпит неудачу
"explore"
В Win 95/98 - открывают каталог в окне Проводника
"properties"
Показывает свойства файла или папки
Значение по умолчанию - "open"
lpFile
Файл, с которым производятся действия
lpParameters
Любые параметры командной строки для передачи открытому приложению
lpDirectory
Рабочий каталог для операции
nShowCmd
Один из следующих флажков, определяющих вид окна
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Показать открытое окно и активировать его (как обычно)

Пример

' Выполним следующие операции:
' 1. Запустим блокнот в развернутом виде
' 2. Откроем документ "C:\WINDOWS\клыки.bmp" (с программой,
которая ассоциируется с ним) 
' 3. Пошлем письмо автору справочника

' 1. Запускаем блокнот
ShellExecute 0&, vbNullString, "c:\windows\notepad.exe", vbNullString, _
      vbNullString,  SW_SHOWMAXIMIZED
' 2. Открываем документ
ShellExecute Form1.hWnd, "open", "c:\windows\клыки.bmp", vbNullString, vbNullString, SW_SHOWNORMAL
' 3. Посылаем письмо
ShellExecute Me.hwnd, vbNullString, "mailto:vbasic@rambler.ru", vbNullString, "C:\", SW_SHOWNORMAL

Смотри также

ShellExecuteEx

Категория

Оболочка