Partager via


Fonction FindExecutableW (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 terminée par null qui spécifie un nom de fichier. Ce fichier doit être un document.

[in, optional] lpDirectory

Type : LPCTSTR

Adresse d’une chaîne terminée par null 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 qui spécifie le fichier exécutable démarré lorsqu’une association « open » est exécutée sur le fichier spécifié dans le paramètre lpFile . En termes simples, il s’agit de l’application qui est lancée lorsque le fichier de document est directement double-cliqué ou quand Ouvrir est choisi dans le menu contextuel du fichier. Ce paramètre doit contenir une valeur non null valide et est supposé être de longueur MAX_PATH. La responsabilité de la validation de la valeur est laissée au programmeur.

Valeur retournée

Type : HINSTANCE

Retourne une valeur supérieure à 32 en cas de réussite, ou une valeur inférieure ou égale à 32 représentant une erreur.

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

Code/valeur de retour Description
SE_ERR_FNF
2
Le fichier spécifié est introuvable.
SE_ERR_PNF
3
Le chemin d’accès 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 en panne de mémoire ou de 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 terminée par null qui spécifie le nom du fichier exécutable, pszPath est un pointeur vers la mémoire tampon de chaîne terminée par null 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 retourne, pcchOut est défini 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.

Notes

L’en-tête shellapi.h définit FindExecutable comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête shellapi.h
Bibliothèque Shell32.lib
DLL Shell32.dll

Voir aussi

ShellExecute