Obtient le lien suivant dans une énumération de liens en dur
#include <WinAPIFiles.au3>
_WinAPI_FindNextFileName ( $hSearch, ByRef $sLink )
$hSearch | Le handle de l'énumération qui est retourné par un appel réussi à la fonction _WinAPI_FindFirstFileName(). |
$sLink | Retourne le nom du lien suivant qui a été trouvé. |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended peut contenir le code d'erreur du système. |
Si la fonction échoue, car plus aucun des liens ne correspond au critère de recherche, @extended contiendra le code d'erreur système ERROR_HANDLE_EOF(38).
Cette fonction nécessite Windows Vista ou une version ultérieure.
Consultez FindNextFileNameW dans la librairie MSDN.
#include <MsgBoxConstants.au3> #include <WinAPIError.au3> #include <WinAPIFiles.au3> #include <WinAPIShPath.au3> Local $sFile = @DesktopDir & '\@' & StringRegExpReplace(_WinAPI_PathFindFileName(@ScriptName), '\A_+', '') ; Crée un lien en dur vers le fichier courant avec le préfixe "@" sur votre bureau If Not _WinAPI_CreateHardLink($sFile, @ScriptFullPath) Then MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', 'Impossible de créer un lien en dur.') Exit EndIf ; Énumére tous les liens en dur vers le fichier Local $sLink Local $hSearch = _WinAPI_FindFirstFileName($sFile, $sLink) While Not @error ConsoleWrite( _WinAPI_PathAppend(_WinAPI_PathStripToRoot($sFile), $sLink) & @CRLF) _WinAPI_FindNextFileName($hSearch, $sLink) WEnd Switch @extended Case 38 ; ERROR_HANDLE_EOF Case Else MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), @extended, _WinAPI_GetErrorMessage(@extended)) EndSwitch FileDelete($sFile)