Les Snippets

Connexion

récupérer le chemin d'un fichier pointé par un raccourci

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 07/09/2006 17:12:00 et initié par Renfield [Liste]
Vue : 3668
Catégorie(s) : Fichier / Disque
Langages dispo pour ce code :
- VB6, VBA



Langage : VB6 , VBA
Date ajout : 07/09/2006
Posté par Renfield [Liste]
Public Function ResolveShortcut(ByRef vsLnkFilePath As String) As String
Dim hFile As Integer
Dim nByteBuffer As Byte
Dim nLongBuffer As Long
Dim nIntBuffer As Integer
Dim nPosFLI As Long  '# Position de départ de la FLI (File Location Info)
Dim nOffset_BasePath As Long
Dim nOffset_Network As Long
Dim nOffset_Remaining As Long
     hFile = FreeFile
     Open vsLnkFilePath For Binary Access Read As hFile
        Get hFile, 1, nLongBuffer
        '# les fichiers LNK commencent par un 'L'
        If nLongBuffer = 76 Then
            '# On skippe le GUID
            Seek hFile, 21
            '# On récupère les flags
            Get hFile, , nLongBuffer
            '# si la Shell Item ID liste est présente...
            If nLongBuffer And 1 Then
                Seek hFile, 77
                '# On récupère la taille totale de la liste
                Get hFile, , nIntBuffer
                '# et on décale d'autant le pointeur de lecture.
                nPosFLI = 79 + nIntBuffer
            Else
                nPosFLI = 77
            End If
        
            '# On skippe la taille, les flags, et les Local Volume Info
            Seek hFile, nPosFLI + 16
            '# Offset du chemin, si fichier local
            Get hFile, , nOffset_BasePath
            '# Offset du repertoire réseau
            Get hFile, , nOffset_Network
            '# Offset du reste (éventuel) du nom du fichier
            Get hFile, , nOffset_Remaining
            If nOffset_BasePath Then
                Seek hFile, nPosFLI + nOffset_BasePath
                Do
                    Get hFile, , nByteBuffer
                    If nByteBuffer <> 0 Then
                        ResolveShortcut = ResolveShortcut & ChrW$(nByteBuffer)
                    Else
                        Exit Do
                    End If
                Loop
            ElseIf nOffset_Network Then
                Seek hFile, nPosFLI + nOffset_Network + &H14
                Do
                    Get hFile, , nByteBuffer
                    If nByteBuffer <> 0 Then
                        ResolveShortcut = ResolveShortcut + ChrW$(nByteBuffer)
                    Else
                        Exit Do
                    End If
                Loop
                ResolveShortcut = ResolveShortcut & "\"
            End If
            If nOffset_Remaining Then
                Seek hFile, nPosFLI + nOffset_Remaining
                Do
                    Get hFile, , nByteBuffer
                    If nByteBuffer <> 0 Then
                        ResolveShortcut = ResolveShortcut + ChrW$(nByteBuffer)
                    Else
                        Exit Do
                    End If
                 Loop
            End If
        Else
            ResolveShortcut = vsLnkFilePath
        End If
    Close hFile
End Function

Snippets en rapport avec : Resolve, Raccourci, Lnk



Codes sources en rapport avec : Resolve, Raccourci, Lnk

{Delphi} COMPOSANT : TDBPLINKMAKER CREEZ DES .LNK
Je l'avais dit ;) Bon voila mon 18eme compo, un créateur de *.lnk 99% complet, le dernier % est réu...

{Delphi} CRÉATION DE FICHIERS RACCOURCIS .LNK
Ce source permet de créer un fichier raccourci vers le fichier que l'on veut, en utilisant l'interfa...

{C# / C#.NET} LINKY : GESTIONNAIRE DE ROOTS
Je n'aime pas que mon bureau Windows soit surchargé en raccourcis.Cet apllication permet d'afficher ...

{Visual Basic, VB6, VB.NET, VB 2005} AJOUTER N'IMPORTE QUEL RACCOURCI À VOS MENUS (HOOK CLAVIER)
Salut, Alors cette source permet d'ajouter à n'importe quel menu standard de VB n'importe quel ra...

{Visual Basic, VB6, VB.NET, VB 2005} COMPRESSION ET UPLOAD VERS UN SERVEUR FTP
il ya un bon moment que j'ai fait un keylogger biensûr grâce a vos sources déposées ici en Vbfrance ...

{C / C++ / C++.NET} RACOURCI SHORTCUT
un autre source sur la creation de racouci 2 fonction facile pour creer un racourci ou on veut ...

{Visual Basic, VB6, VB.NET, VB 2005} __LINKMULE
Petit programme simple qui s'adresse au joueurs prend en charge les emulateurs de jeux suivant: ...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTISSEUR DE MINUTES EN HEURES
Je suis débutant et j'ai fait ce petit programme avec un code très simple, vous pouvez additionner, ...

{C / C++ / C++.NET} [DEV-CPP]ARCHIVAGE DES LIENS D'UNE RECHERCHE SUR GOOGLE
Bonjour Je me présent, je m'appelle Sébastien, j'ai 16 ans et programme en C depuis cet été, donc p...

{Javascript / DHTML} RACCOURCI VERS RÉPERTOIRES
j'ai lu des commentaires de personnes qui appréciaient un programme permettant de "mémoriser" des ...