Partager via


FindExecutableW, fonction (shellapi.h)

Récupère le nom et le handle du fichier exécutable (.exe) associé à un fichier de document spécifique.

Syntaxe

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

Paramètres

[in] lpFile

Type : LPCTSTR

Adresse d’une chaîne null-terminated qui spécifie un nom de fichier. Ce fichier doit être un document.

[in, optional] lpDirectory

Type : LPCTSTR

Adresse d’une chaîne null-terminated qui spécifie le répertoire par défaut. Cette valeur peut être NULL.

[out] lpResult

Type : LPTSTR

Adresse d’une mémoire tampon qui reçoit le nom de fichier du fichier exécutable associé. Ce nom de fichier est une chaîne null-terminated qui spécifie le fichier exécutable démarré lorsqu’un « ouvert » par association est exécuté sur le fichier spécifié dans le paramètre lpFile. Autrement dit, il s’agit de l’application lancée lorsque le fichier de document est directement double-cliqué ou lorsque Ouvrir est choisi dans le menu contextuel du fichier. Ce paramètre doit contenir une valeur de null nonvalide et est supposé être de longueur MAX_PATH. La responsabilité de valider la valeur est laissée au programmeur.

Valeur de retour

Type : HINSTANCE

Retourne une valeur supérieure à 32 si elle réussit, ou une valeur inférieure ou égale à 32 représentant une erreur.

Le tableau suivant répertorie les valeurs d’erreur possibles.

Retourner le code/la valeur Description
SE_ERR_FNF
2
Le fichier spécifié n’a pas été trouvé.
SE_ERR_PNF
3
Le chemin spécifié n’est pas valide.
SE_ERR_ACCESSDENIED
5
Impossible d’accéder au fichier spécifié.
SE_ERR_OOM
8
Le système est hors mémoire ou ressources.
SE_ERR_NOASSOC
31
Il n’existe aucune association pour le type de fichier spécifié avec un fichier exécutable.

Remarques

Utilisez FindExecutable pour les documents. Si vous souhaitez récupérer le chemin d’accès d’un fichier exécutable, utilisez les éléments suivants :

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

Ici, pszExecutableName est un pointeur vers une chaîne null-terminated qui spécifie le nom du fichier exécutable, pszPath est un pointeur vers la mémoire tampon de chaînenull -terminated qui reçoit le chemin d’accès au fichier exécutable, et pcchOut est un pointeur vers un DWORD qui spécifie le nombre de caractères dans la mémoire tampon pszPath. Lorsque la fonction est retournée, pcchOut est définie sur le nombre de caractères réellement placés dans la mémoire tampon. Pour plus d’informations, consultez AssocQueryString.

Lorsque findExecutable retourne, le paramètre lpResult peut contenir le chemin d’accès au serveur Dynamic Data Exchange (DDE) démarré si un serveur ne répond pas à une demande de lancement d’une conversation DDE avec l’application cliente DDE.

Note

L’en-tête shellapi.h définit FindExecutable comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête shellapi.h
bibliothèque Shell32.lib
DLL Shell32.dll

Voir aussi

ShellExecute