Aide et conseils concernant AutoIt et ses outils.
-
serpafi
- Niveau 1

- Messages : 9
- Enregistré le : ven. 25 oct. 2019 20:19
-
Status :
Hors ligne
#1
Message
par serpafi » dim. 27 oct. 2019 00:36
Bonjours a tous,
Pour les listviews elles ont chacune:
GUICtrlSetState($ListView1, $GUI_DROPACCEPTED + $ES_AUTOVSCROLL + $ES_READONLY)
Voici le code pour récupérer le drag and drop à mettre après "GUISetState(@SW_SHOW)":
La fonction pour récupérer les fichiers:
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 $gaDropFiles[$i + 1] $gaDropFiles[$i] = DllStructGetData($pFileName, 1) $pFileName = 0 NextEndFunc
La fonction pour traiter chaque fichier (retirer le chemin, choisir les extensions autorisées et vérifier les doublons dans la listview qui reçoit le drop):
Puis ajouter
case $GUI_EVENT_DROPPEDfilelist
()
dans le switch
ex:
Voila Bonne continuation
et un grand merci à la communauté d'autoitscript
Biz à tous
-
Fichiers joints
-
drag an drop multi-listviews.au3
- (2.83 Kio) Téléchargé 33 fois
Modifié en dernier par
serpafi le mar. 29 oct. 2019 12:53, modifié 15 fois.
-
TommyDDR
- Modérateur

- Messages : 1820
- Enregistré le : mar. 22 juil. 2008 20:55
- Localisation : Nantes
-
Status :
Hors ligne
#2
Message
par TommyDDR » dim. 27 oct. 2019 12:06
Bonjour serpafi,
en me penchant sur votre problème, je me suis rendu compte que même mes anciens programmes qui utilisaient le drag&drop (et qui fonctionnait) n'ont plus l'air de fonctionner sous windows 10...
En général c'est à cause des droits du programme vs les droits de l'explorateur, mais même en essayant de les lancer en admin ou non, le drop n'est plus détecté...
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-
serpafi
- Niveau 1

- Messages : 9
- Enregistré le : ven. 25 oct. 2019 20:19
-
Status :
Hors ligne
#3
Message
par serpafi » dim. 27 oct. 2019 13:56
Merci tommyDDR de te pencher dessus.
De mon coté le drag and drop fonctionne, je dépose une video en MKV une 1er fois sur $listview1,
le message "rep1" apparait puis le redépose une 2eme fois et le nom du fichier se retrouve dans $listview1.
1er problème : dés le début je dois déposer 2 fois pour que le fichier soit prit en compte.
2eme problème : a partir du moment ou il y a un fichier dans une des list (ex $listview1), le D'n'D devient actif sur tout le GUI (sur les labels, comboboxs, etc...) mais rempli que la $listview1.
J'aimerai un D'n'D délimité aux listviews .
Pour info
Les @gui_dropid et @gui_dragfile restent bloqués sur les valeurs du premier fichier.
ConsoleWrite(@GUI_DropId & " valeur @GUI_DropId " &@CRLF)
ConsoleWrite(@GUI_DragFile & " valeur @GUI_DragFile " &@CRLF)
que j'ai mis dans la fonction "WM_DROPFILES_FUNC_rep1" et "WM_DROPFILES_FUNC_rep2"
En bref! je bloque.
J’espère ne pas trop noyer le poisson avec mes explications.:'D
-
mikell
- Modérateur

- Messages : 5893
- Enregistré le : dim. 29 mai 2011 16:32
- Localisation : Deep Cévennes
-
Status :
Hors ligne
#4
Message
par mikell » lun. 28 oct. 2019 12:09
Sujet déplacé dans l'Aide Générale
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
-
JoeBar
- Niveau 2

- Messages : 19
- Enregistré le : sam. 26 oct. 2019 09:20
-
Status :
Hors ligne
#5
Message
par JoeBar » mar. 29 oct. 2019 11:49
Salut, ton fichier source renvoie des erreurs de boucle, il fonctionne chez toi ?

-
serpafi
- Niveau 1

- Messages : 9
- Enregistré le : ven. 25 oct. 2019 20:19
-
Status :
Hors ligne
#6
Message
par serpafi » mar. 29 oct. 2019 12:54
corrigé