Функция 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
Категория
Оболочка