Recherche un fichier spécifié dans un chemin d'accès spécifié
#include <WinAPIFiles.au3>
_WinAPI_SearchPath ( $sFilePath [, $sSearchPath = ''] )
$sFilePath | Le nom du fichier à rechercher. |
$sSearchPath | [optionnel] Le chemin où rechercher le fichier. Si ce paramètre est omis ou la chaîne vide (par défaut), la fonction recherche un fichier dans un chemin de recherche système du registre (voir ci-dessous). |
Succès: | Retourne le chemin du fichier trouvé. |
Échec: | Définit @error <> 0, appelez _WinAPI_GetLastError() pour obtenir des informations supplémentaires sur l'erreur. |
Si le chemin est une chaîne vide, _WinAPI_SearchPath() recherche un fichier à partir de la valeur actuelle de la clé de Registre suivante:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ SafeProcessSearchMode
Lorsque la valeur de cette clé de Registre est définie à 1, _WinAPI_SearchPath() recherches d'abord les dossiers qui sont spécifiés dans le chemin du système, puis recherche dans le dossier de travail courant. Lorsque la valeur de cette clé de registre est définie à 0, l'ordinateur recherche d'abord le dossier de travail courant, puis recherche les dossiers qui sont spécifiés dans le chemin du système. La valeur par défaut du système pour cette clé de Registre est 0.
Cette fonction n'est pas recommandée pour localiser un fichier .dll si l'utilisation prévue de la sortie est un appel à la fonction _WinAPI_LoadLibrary(). Cela peut se traduire par une localisation erronée du fichier .dll parce que l'ordre de recherche de la fonction _WinAPI_SearchPath() diffère de l'ordre de recherche utilisé par la fonction _WinAPI_LoadLibrary(). Si vous avez besoin de localiser et de charger un fichier dll, utilisez la fonction _WinAPI_LoadLibrary().
Le mode de recherche utilisé par la fonction _WinAPI_SearchPath() peut également être définie par le processus en appelant la fonction _WinAPI_SetSearchPathMode().
_WinAPI_LoadLibrary, _WinAPI_SetSearchPathMode
Consultez SearchPath dans la librairie MSDN.
#include <WinAPIFiles.au3> Local $sFile = 'Notepad.exe' ConsoleWrite( _WinAPI_SearchPath($sFile) & @CRLF) ConsoleWrite( _WinAPI_SearchPath($sFile, @SystemDir) & @CRLF)