Função FindExecutableW (shellapi.h)

Recupera o nome e o identificador para o arquivo executável (.exe) associado a um arquivo de documento específico.

Sintaxe

HINSTANCE FindExecutableW(
  [in]           LPCWSTR lpFile,
  [in, optional] LPCWSTR lpDirectory,
  [out]          LPWSTR  lpResult
);

Parâmetros

[in] lpFile

Tipo: LPCTSTR

O endereço de uma cadeia de caracteres terminada em nulo que especifica um nome de arquivo. Esse arquivo deve ser um documento.

[in, optional] lpDirectory

Tipo: LPCTSTR

O endereço de uma cadeia de caracteres terminada em nulo que especifica o diretório padrão. Esse valor pode ser NULL.

[out] lpResult

Tipo: LPTSTR

O endereço de um buffer que recebe o nome do arquivo executável associado. Esse nome de arquivo é uma cadeia de caracteres terminada em nulo que especifica o arquivo executável iniciado quando um "open" por associação é executado no arquivo especificado no parâmetro lpFile . Simplificando, esse é o aplicativo que é iniciado quando o arquivo de documento é clicado diretamente duas vezes ou quando Open é escolhido no menu de atalho do arquivo. Esse parâmetro deve conter um valor não nulo válido e é considerado de comprimento MAX_PATH. A responsabilidade de validar o valor é deixada para o programador.

Retornar valor

Tipo: HINSTANCE

Retorna um valor maior que 32 se bem-sucedido ou um valor menor ou igual a 32 que representa um erro.

A tabela a seguir lista os valores de erro possíveis.

Valor/código retornado Descrição
SE_ERR_FNF
2
O arquivo especificado não foi encontrado.
SE_ERR_PNF
3
O caminho especificado é inválido.
SE_ERR_ACCESSDENIED
5
O arquivo especificado não pode ser acessado.
SE_ERR_OOM
8
O sistema está sem memória ou recursos.
SE_ERR_NOASSOC
31
Não há associação para o tipo de arquivo especificado com um arquivo executável.

Comentários

Use FindExecutable para documentos. Se você quiser recuperar o caminho de um arquivo executável, use o seguinte:

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

Aqui, pszExecutableName é um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome do arquivo executável, pszPath é um ponteiro para o buffer de cadeia de caracteres terminada em nulo que recebe o caminho para o arquivo executável e pcchOut é um ponteiro para um DWORD que especifica o número de caracteres no buffer pszPath . Quando a função retorna, pcchOut é definido como o número de caracteres realmente colocados no buffer. Consulte AssocQueryString para obter mais informações.

Quando FindExecutable retorna, o parâmetro lpResult pode conter o caminho para o servidor DDE (Dynamic Data Exchange) iniciado se um servidor não responder a uma solicitação para iniciar uma conversa DDE com o aplicativo cliente DDE.

Observação

O cabeçalho shellapi.h define FindExecutable como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shellapi.h
Biblioteca Shell32.lib
DLL Shell32.dll

Confira também

ShellExecute