J'aurais besoin de lire le contenu d'un fichier lnk.
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]

