382__________________.___________________________Глава 6

Параметр Wnd является дескриптором родительского окна, в котором отобра-
жаются сообщения запускаемого приложения. Обычно в качестве него можно про-
сто указать Handle.

Параметр Operation указывает на строку с нулевым символом в конце, кото-
рая определяет выполняемую операцию. Эта строка может содержать текст «open»
(открыть) или «print» (напечатать). Для Windows 95 и NT определено еще одно
значение: «explore» (исследовать) — открыть папку программой Windows «Про-
водник». Если параметр Operation равен NULL, то по умолчанию выполняется
операция «open».

Параметр FileName указывает на строку с нулевым символом в конце, кото-
рая определяет имя открываемого файла или имя открываемой папки.

Параметр Parameters указывает на строку с нулевым символом в конце, кото-
рая определяет передаваемые в приложение параметры, если FileName определяет
выполняемый файл. Если FileName указывает на строку, определяющую откры-
ваемый документ или папку, то этот параметр задается равным NULL.

Параметр Directory указывает на строку с нулевым символом в конце, кото-
рая определяет каталог по умолчанию.

Параметр ShowCmd определяет режим открытия указанного файла. Этот па-
раметр может иметь множество различных значений, которые указаны в главе 14
в разделе 14.14.3.2. Обычно, как и для функции WinExec, используется значение
SW_RESTORE, при котором окно запускаемого приложения активизируется и
отображается на экране. Если это окно в данный момент свернуто или развернуто,
то оно восстанавливается до своих первоначальных размеров и отображается в пер-
воначальной позиции. Для приложений не Windows, для файлов PIF и т.д. состоя-
ние окна определяет само приложение.

Приведем примеры использования функции ShellExecute. Пусть вы хотите
открыть файл документа с именем file.doc, т.е. запустить WinWord (обычно имен-
но он связан с файлами .doc), загрузив в него указанный файл. Тогда вы можете
написать:

ShellExecute(Handle,NULL,"file.doc",NULL,NULL,SW_RESTORE);

Если вы хотите не открыть, а напечатать документ, записываются аналогич-
ные операторы, но изменяется значение параметра Operation:

SheilExecute(Handle,"print","file.doc",NULL,NULL,SW_RESTORE) ;

Выполнение этого оператора будет протекать следующим образом. Запустится
WinWord, связанный с файлами .doc, в него загрузится файл file.doc, затем из
Winword запустится печать с атрибутами по умолчанию, после чего файл file.doc
выгрузится из Winword.

Приведенный ниже оператор открывает приложение Windows «Калькуля-
тор »:

ShellExecute(Handle,"open","Calc",NULL,NULL,SW_RESTORE) ;

Следующий пример открывает папку c:\Program Files\Borland:

ShellExecute(Handle,"open",

"c:\\Program Files\\Borland",NULL,NULL,SW_RESTORE) ;

А оператор

ShellExecute(Handle,"explore",

"c:\\Program Files\\Borland".NULL,NULL,SW_RESTORE) ;

открывает программу «Проводник» с открытой папкой c:\Program FiIes\Borland.

Функция ShellExecute не возвращает никакого значения. Если при вызове
функции произошла ошибка, то ее можно узнать, вызвав функцию GetLastError:

DWORD GetLastError(VOID)