Page 1 sur 1

[R] Lire contenu fichier lnk

Posté : mer. 12 nov. 2014 17:47
par jcaspar
B :D onjour à tous !

J'aurais besoin de lire le contenu d'un fichier lnk. :roll: .. savez vous si cela est possible ....
il me faudrait récupérer la valeur cible ... alors que dans mon script je dispose pour l'instant
uniquement du chemin...

En vous remerciant pour vos conseils


Jean-Marc

Code : Tout sélectionner

[spoiler=]

#include <Array.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <GuiListview.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>



Global $State

; Liste dans un tableau  les fichiers lnk du dossier temp
Global $a = _FileListToArray("c:\temp", "*.lnk", $FLTA_FILES)

If @error = 1 Then
    MsgBox($MB_SYSTEMMODAL, "", "Path was invalid.")
    Exit
EndIf
If @error = 4 Then
    MsgBox($MB_SYSTEMMODAL, "", "No file(s) were found.")
    Exit
EndIf

; création fenêtre
$hGUI = GUICreate("Lister les raccourcis", 400, 400)

Global $listview = GUICtrlCreateListView("Liste des fichiers", 0, 0, 400, 400, 2, $LVS_EX_CHECKBOXES)

; Liste les raccourcis
;local $aRaccourcis[ $a[0] ]
For $i = 1 To $a[0]
    ; $aRaccourcis[$i - 1] = GUICtrlCreateListViewItem($a[$i], $listview)
    _GUICtrlListView_AddItem($listview, $a[$i])

Next

GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')
GUISetState()

Do

Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    $hWndListView = $listview
    If Not IsHWnd($listview) Then $hWndListView = GUICtrlGetHandle($listview)

    Local $tNMITEMACTIVATE = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    Local $hWndFrom = DllStructGetData($tNMITEMACTIVATE, 'hWndFrom')
    Local $Index = DllStructGetData($tNMITEMACTIVATE, 'Index')
    Local $Code = DllStructGetData($tNMITEMACTIVATE, 'Code')

    Switch $hWndFrom
        Case $hWndListView
            Switch $Code
                Case $LVN_ITEMCHANGING
                    $State = _GUICtrlListView_GetItemChecked($hWndListView, $Index)
                    ;_GUICtrlListView_GetItemText($hWndListView, $Index))
                Case $LVN_ITEMCHANGED
                    If $State <> _GUICtrlListView_GetItemChecked($hWndListView, $Index) Then
                        ;ConsoleWrite('Item' & ($Index + 1) & ' - ' & (Not $State) & @CR)
                        ConsoleWrite(_GUICtrlListView_GetItemText($hWndListView, $Index) & " est à l'état: " & (Not $State) & @CR)
;~                      if liens vers fichier
                        ShellExecute( _GUICtrlListView_GetItemText($hWndListView, $Index))


;~                      Run("C:\WINDOWS\EXPLORER.EXE /n,/e,")
 _IECreate(_GUICtrlListView_GetItemText($hWndListView, $Index))



;~ if StringRegExp("test"," <A[^>]*?HREF\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/A>")
;~ _IECreate($a[$i)
                    EndIf


            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY



[/spoiler]

Re: [..] Lire contenu fichier lnk

Posté : mer. 12 nov. 2014 19:40
par orax
FileGetShortcut() :mrgreen:

Re: [..] Lire contenu fichier lnk

Posté : mer. 12 nov. 2014 22:12
par jcaspar
Merci beaucoup pour l'info
c'est génial !

Jean-Marc

Re: [..] Lire contenu fichier lnk

Posté : mer. 12 nov. 2014 22:31
par jguinch
@jcaspar : tu oublies pas quelque chose ? :roll: