Поделиться через


Функция FindExecutableA (shellapi.h)

Извлекает имя и дескриптор исполняемого файла (.exe), связанного с определенным файлом документа.

Синтаксис

HINSTANCE FindExecutableA(
  [in]           LPCSTR lpFile,
  [in, optional] LPCSTR lpDirectory,
  [out]          LPSTR  lpResult
);

Параметры

[in] lpFile

Тип: LPCTSTR

Адрес строки null-terminated, указывающей имя файла. Этот файл должен быть документом.

[in, optional] lpDirectory

Тип: LPCTSTR

Адрес строки null-terminated, указывающей каталог по умолчанию. Это значение может быть NULL.

[out] lpResult

Тип: LPTSTR

Адрес буфера, получающего имя файла связанного исполняемого файла. Это имя файла является строкой null-terminated, указывающей исполняемый файл, запущенный при запуске сопоставления в файле, указанном в параметре lpFile. Проще говоря, это приложение, которое запускается при непосредственном щелчке файла документа или при выборе Открыть из контекстного меню файла. Этот параметр должен содержать допустимое значение, отличное отnull, и предполагается, что длина MAX_PATH. Ответственность за проверку значения остается программисту.

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

Тип: HINSTANCE

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

В следующей таблице перечислены возможные значения ошибок.

Возврат кода или значения Описание
SE_ERR_FNF
2
Указанный файл не найден.
SE_ERR_PNF
3
Указанный путь недопустим.
SE_ERR_ACCESSDENIED
5
Доступ к указанному файлу невозможен.
SE_ERR_OOM
8
Система не использует память или ресурсы.
SE_ERR_NOASSOC
31
Связь для указанного типа файла с исполняемым файлом отсутствует.

Замечания

Используйте FindExecutable для документов. Чтобы получить путь к исполняемому файлу, используйте следующее:

AssocQueryString(ASSOCF_OPEN_BYEXENAME,
                 ASSOCSTR_EXECUTABLE,
                 pszExecutableName,
                 NULL,
                 pszPath,
                 pcchOut);

Здесь pszExecutableName — это указатель на строку null-terminated, указывающую имя исполняемого файла, pszPath — это указатель на null-завершенный строковый буфер, который получает путь к исполняемому файлу, а pcchOut — указатель на DWORD, указывающий количество символов в буфере pszPath. Когда функция возвращается, pcchOut задается число символов, фактически помещенных в буфер. Дополнительные сведения см. в AssocQueryStr ing.

Когда FindExecutable возвращает, параметр lpResult может содержать путь к серверу Динамического обмена данными (DDE), запущенном, если сервер не отвечает на запрос на запуск беседы DDE с клиентским приложением DDE.

Заметка

Заголовок shellapi.h определяет FindExecutable как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка shellapi.h
библиотеки Shell32.lib
DLL Shell32.dll

См. также

ShellExecute