Partager via


Fonction NeedCurrentDirectoryForExePathA (processenv.h)

Détermine si le répertoire actif doit être inclus dans le chemin de recherche du fichier exécutable spécifié.

Syntaxe

BOOL NeedCurrentDirectoryForExePathA(
  [in] LPCSTR ExeName
);

Paramètres

[in] ExeName

Nom du fichier exécutable.

Valeur retournée

Si le répertoire actif doit faire partie du chemin de recherche, la valeur de retour est TRUE. Sinon, la valeur de retour est FALSE.

Remarques

Cette fonction ne doit être appelée que dans les cas où l’appelant doit explicitement résoudre un nom exécutable relatif en nom absolu. Si CreateProcess est appelé avec un nom exécutable relatif, il recherche automatiquement l’exécutable, en appelant cette fonction pour déterminer le chemin de recherche.

La plupart des fonctions système effectuent leur propre résolution de chemin d’accès. Par conséquent, cette fonction ne doit être appelée que si vous tentez de résoudre un chemin de recherche pour le fichier exécutable spécifié en fonction du répertoire actif.

La valeur de la variable d’environnement NoDefaultCurrentDirectoryInExePath détermine la valeur retournée par cette fonction. Toutefois, vous devez appeler cette fonction plutôt que de vérifier directement la variable d’environnement, car l’emplacement de Registre de cette variable d’environnement peut changer.

Si la valeur du paramètre ExeName contient une barre oblique inverse (\), cette fonction retourne toujours TRUE. Si elle ne contient pas de barre oblique inverse, l’existence de la variable d’environnement NoDefaultCurrentDirectoryInExePath est vérifiée, et non sa valeur.

Un exemple de instance lorsque cette fonction doit être appelée au lieu de s’appuyer sur l’algorithme de résolution de chemin de recherche par défaut dans CreateProcess est l’exécutable « cmd.exe ». Elle appelle cette fonction pour déterminer le chemin de recherche de la commande, car elle effectue sa propre résolution de chemin avant d’appeler CreateProcess. Si cette fonction retourne TRUE, cmd.exe utilise le chemin d’accès . ; %PATH% » pour la recherche exécutable. S’il retourne FALSE, cmd.exe utilise le chemin « %PATH% » pour la recherche.

Notes

L’en-tête processenv.h définit NeedCurrentDirectoryForExePath en tant qu’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. La combinaison 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 Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête processenv.h (inclure Windows.h sur Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CreateProcess

Fonctions de processus et de thread