Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIListBox.au3>
Global $sItems = "", $DropFilesArr[1]
$gui = GUICreate("My GUI list", 400, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
GUIRegisterMsg(0x233, "WM_DROPFILES_FUNC")
$read = GUICtrlCreateButton("lire", 10, 10, 75, 25)
$mylist = GUICtrlCreateList("", 10, 50, 350, 100, $LBS_EXTENDEDSEL )
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $GUI_EVENT_DROPPED
For $i = 1 To UBound($DropFilesArr)-1
GUICtrlSetData($mylist, $DropFilesArr[$i])
Next
Case $msg = $read
$aItems = _GUICtrlListBox_GetSelItemsText($mylist)
For $iI = 1 To $aItems[0]
$sItems &= @LF & $aItems[$iI]
Next
MsgBox(4160, "Information", "Items Selected: " & $sItems)
EndSelect
WEnd
Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
Local $nSize, $pFileName
Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
For $i = 0 To $nAmt[0] - 1
$nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
$nSize = $nSize[0] + 1
$pFileName = DllStructCreate("char[" & $nSize & "]")
DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", _
DllStructGetPtr($pFileName), "int", $nSize)
ReDim $DropFilesArr[$i + 2]
$DropFilesArr[$i+1] = DllStructGetData($pFileName, 1)
$pFileName = 0
Next
$DropFilesArr[0] = UBound($DropFilesArr)-1
EndFunc