[R] Lire contenu fichier lnk

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[R] Lire contenu fichier lnk

#1

Message 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]
Modifié en dernier par jcaspar le mer. 19 nov. 2014 11:28, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Lire contenu fichier lnk

#2

Message par orax »

FileGetShortcut() :mrgreen:
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Lire contenu fichier lnk

#3

Message par jcaspar »

Merci beaucoup pour l'info
c'est génial !

Jean-Marc
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Lire contenu fichier lnk

#4

Message par jguinch »

@jcaspar : tu oublies pas quelque chose ? :roll:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre