Aide liste fichier
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
Aide liste fichier
Bonjour,
Je suis débutant sur AUTOIT mais j'ai réussi a me faire aider pour faire un mini-soft utile pour mon travail.
Actuellement je suis en train de le Mettre a jour et j'aimerai ajouter une nouvelle fonction: lire des pdf tuto (présents dans un dossier)
Or je n'arrive pas a trouver / faire ce que je voudrais.
je voulais faire la chose suivante:
un menu qui liste les fichiers pdf du dossier (par leurs nom de fichier) dans une liste ou liste déroulante,
et que par l'action d'un (double) clic ou par selection (dans la liste) puis validation par un bouton "valider",
le PDF s'ouvre via le logiciel portable.
Je sollicite donc votre aide: serait il possible que quelqu'un me fasse ce script ?
Les pdf sont dans un dossier "files", ce dossier sera au même endroit que le script.
Ils s'executent avec l'exe portable "PDFXCview.exe" dans le dossier "pdf" a cet endroit "AUTOIT\utilitaire\exe\pdf"
(chemin complet "AUTOIT\utilitaire\exe\pdf\PDFXCview.exe")
D'avance merci,
Cordialement
Je suis débutant sur AUTOIT mais j'ai réussi a me faire aider pour faire un mini-soft utile pour mon travail.
Actuellement je suis en train de le Mettre a jour et j'aimerai ajouter une nouvelle fonction: lire des pdf tuto (présents dans un dossier)
Or je n'arrive pas a trouver / faire ce que je voudrais.
je voulais faire la chose suivante:
un menu qui liste les fichiers pdf du dossier (par leurs nom de fichier) dans une liste ou liste déroulante,
et que par l'action d'un (double) clic ou par selection (dans la liste) puis validation par un bouton "valider",
le PDF s'ouvre via le logiciel portable.
Je sollicite donc votre aide: serait il possible que quelqu'un me fasse ce script ?
Les pdf sont dans un dossier "files", ce dossier sera au même endroit que le script.
Ils s'executent avec l'exe portable "PDFXCview.exe" dans le dossier "pdf" a cet endroit "AUTOIT\utilitaire\exe\pdf"
(chemin complet "AUTOIT\utilitaire\exe\pdf\PDFXCview.exe")
D'avance merci,
Cordialement
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Aide liste fichier
Bonjour,
Ce sujet a été déjà abordé très souvent. Vous auriez pu faire une recherche !
Pour lister les fichiers
Vous créez une listview d'une colonne (avec Koda) que vous remplissez avec
Pour lire la ligne sélectionnée de la listview
Pour lancer la lecture du PDF
Utilisez l'aide (qui existe en français sur ce forum) et les exemples pour vous documenter. Proposez nous un code (simple) où nous pourrions vous aider si vous avez des problèmes.
Ce sujet a été déjà abordé très souvent. Vous auriez pu faire une recherche !
Pour lister les fichiers
_FileListToArray()
ce qui vous donne un array d'une colonne Vous créez une listview d'une colonne (avec Koda) que vous remplissez avec
_GUICtrlListView_AddArray ()
Pour lire la ligne sélectionnée de la listview
_GUICtrlListView_GetItemTextString($ListView1)
Pour lancer la lecture du PDF
ShellExecute()
Soit PDFXCview.exe est le lecteur par défaut et le chemin du PDF est suffisant, soit il ne l'est pas dans ce cas ShellExecute("PDFXCview.exe", "chemin du PDF")
Utilisez l'aide (qui existe en français sur ce forum) et les exemples pour vous documenter. Proposez nous un code (simple) où nous pourrions vous aider si vous avez des problèmes.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Aide liste fichier
Mon problème est que même avec l'aide je n'arrive pas a grand chose (je n'arrive pas comprendre le fonctionnement)
en pompant a droite a gauche j'ai réussi a faire cela:
Mais le problème c'est que pour voir la liste je dois cliquer sur "OUVRIR" alors que j'aimerais qu'elle s'affiche directement et que le bouton ouvrir serve a ouvrir le pdf sélectionné...
en pompant a droite a gauche j'ai réussi a faire cela:
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <File.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tutoriels", 314, 410, 276, 135)
GUISetBkColor(0xB4B4B4)
$List1 = GUICtrlCreateList("", 56, 48, 193, 292)
$Label1 = GUICtrlCreateLabel("Liste des Tutoriels", 32, 8, 251, 37, $SS_CENTER)
GUICtrlSetFont(-1, 20, 800, 0, "Tahoma")
GUICtrlSetColor(-1, 0x000000)
$Back = GUICtrlCreateButton("Retour", 56, 360, 65, 33)
$Open = GUICtrlCreateButton("OUVRIR", 184, 360, 65, 33)
GUISetState(@SW_SHOW)
$sFolder = @ScriptDir & "\files" ;emplacement des pdfs
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Open
Local $FileList = _FileListToArray($sFolder, "*.pdf*")
If @error = 1 Then
MsgBox(0, "", "No Folders Found.")
Exit
EndIf
If @error = 4 Then
MsgBox(0, "", "No Files Found.")
Exit
EndIf
For $i = 1 To $FileList[0]
GUICtrlSetData($List1, $FileList[$i])
Next
Case $Back
ExitLoop
EndSwitch
WEnd
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Aide liste fichier
Bonjour,
Vous étiez pas loin de réussir !
Pour lire le PDF, ShellExecute("chemin pdf") ou ShellExecute("lecteur pdf", "chemin pdf")
Vous étiez pas loin de réussir !
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <File.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tutoriels", 314, 410, 276, 135)
GUISetBkColor(0xB4B4B4)
$List1 = GUICtrlCreateList("", 56, 48, 193, 292)
$Label1 = GUICtrlCreateLabel("Liste des Tutoriels", 32, 8, 251, 37, $SS_CENTER)
GUICtrlSetFont(-1, 20, 800, 0, "Tahoma")
GUICtrlSetColor(-1, 0x000000)
$Back = GUICtrlCreateButton("Retour", 56, 360, 65, 33)
$Open = GUICtrlCreateButton("OUVRIR", 184, 360, 65, 33)
GUISetState(@SW_SHOW)
$sFolder = @ScriptDir & "\files" ;emplacement des pdfs
#EndRegion ### END Koda GUI section ###
Local $FileList = _FileListToArray($sFolder, "*.pdf",1,True)
_ArrayDisplay($FileList) ;pour voir le résultat à supprimer si réussite
If @error = 1 Then
MsgBox(0, "", "No Folders Found.")
Exit
EndIf
If @error = 4 Then
MsgBox(0, "", "No Files Found.")
Exit
EndIf
For $i = 1 To $FileList[0]
GUICtrlSetData($List1, $FileList[$i])
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Open
MsgBox(0,"",GUICtrlRead($List1))
Case $Back
ExitLoop
EndSwitch
WEnd
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Aide liste fichier
merci déjà de votre aide 
mais j'ai une fenêtre ARRAY qui s'ouvre en plus de ma fenêtre maintenant, comment l'enlever ? (problème résolu)
ensuite le chemin en soit il est déjà présent dans la liste, je voudrais pouvoir faire en sorte que quand le bouton "ouvrir" est cliqué, cela récupère tout le chemin du pdf sélectionné dans la liste (la liste affiche le contenu du dossier files\ et le nom du pdf afficher est simplement le morceau de chemin manquant) et l'ouvre...
est-ce possible ?
[EDIT]
j'en suis arrivé a là: cela ouvre le lecteur pdf mais vide....

mais j'ai une fenêtre ARRAY qui s'ouvre en plus de ma fenêtre maintenant, comment l'enlever ? (problème résolu)
ensuite le chemin en soit il est déjà présent dans la liste, je voudrais pouvoir faire en sorte que quand le bouton "ouvrir" est cliqué, cela récupère tout le chemin du pdf sélectionné dans la liste (la liste affiche le contenu du dossier files\ et le nom du pdf afficher est simplement le morceau de chemin manquant) et l'ouvre...
est-ce possible ?
[EDIT]
j'en suis arrivé a là: cela ouvre le lecteur pdf mais vide....
Code : Tout sélectionner
#RequireAdmin
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <File.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tutoriels", 314, 410, 276, 135)
GUISetBkColor(0xB4B4B4)
$List1 = GUICtrlCreateList("", 56, 48, 193, 292)
$Label1 = GUICtrlCreateLabel("Liste des Tutoriels", 32, 8, 251, 37, $SS_CENTER)
GUICtrlSetFont(-1, 20, 800, 0, "Tahoma")
GUICtrlSetColor(-1, 0x000000)
$Back = GUICtrlCreateButton("Retour", 56, 360, 65, 33)
$Open = GUICtrlCreateButton("OUVRIR", 184, 360, 65, 33)
GUISetState(@SW_SHOW)
$sFolder = @ScriptDir & "\files" ;emplacement des pdfs
#EndRegion ### END Koda GUI section ###
Local $FileList = _FileListToArray($sFolder, "*.pdf",1,False)
;_ArrayDisplay($FileList) ;pour voir le résultat à supprimer si réussite
If @error = 1 Then
MsgBox(0, "", "No Folders Found.")
Exit
EndIf
If @error = 4 Then
MsgBox(0, "", "No Files Found.")
Exit
EndIf
For $i = 1 To $FileList[0]
GUICtrlSetData($List1, $FileList[$i])
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Open
ShellExecute(@ScriptDir & "\pdf\PDFXCview.exe","",GUICtrlRead($List1))
Case $Back
ExitLoop
EndSwitch
WEnd
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Aide liste fichier
Prenez le temps de lire les fonctions avec leurs options !
ShellExecute("lecteur pdf", "chemin pdf")
j'ouvre le pdfShellExecute("lecteur pdf", "chemin pdf", "", "print")
j'imprime le pdf, etc....Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Aide liste fichier
les options de la fonction c'est ok
mais ce que je n'arrive pas a faire (ce que je ne comprend pas) c'est récupérer ce qui est écrit dans la zone bleu (ou récupérer le chemin complet de ce qui est sélectionné en zone bleu sachant que ce chemin est d'abord utilisé dans la fonction d'affichage de la liste)
mais ce que je n'arrive pas a faire (ce que je ne comprend pas) c'est récupérer ce qui est écrit dans la zone bleu (ou récupérer le chemin complet de ce qui est sélectionné en zone bleu sachant que ce chemin est d'abord utilisé dans la fonction d'affichage de la liste)
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Aide liste fichier
vous remarquerez que dans la list vous avez que les noms des PDF mais pas le chemin parce que vous avez mis
alors que dans mon code, vous avez
Donc la sélection dans la liste vous donne le chemin complet du pdf que le lecteur ouvre
Local $FileList = _FileListToArray($sFolder, "*.pdf",1,False)
alors que dans mon code, vous avez
Local $FileList = _FileListToArray($sFolder, "*.pdf",1,True)
qui renvoie le chemin complet du fichierDonc la sélection dans la liste vous donne le chemin complet du pdf que le lecteur ouvre
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Aide liste fichier
oui ça j'avais vu mais justement je ne veux pas que tout le chemin soit afficher sinon cela va vite devenir illisible.... pour les test j'ai mis que 6 pdf mais au total j'en ai une centaine !
et mème en changeant en TRUE et ça
cela ne donne rien
et mème en changeant en TRUE et ça
ShellExecute(@ScriptDir & "\pdf\PDFXCview.exe","",GUICtrlRead($List1))
cela ne donne rien
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Aide liste fichier
Rhôôôôôô !!!
ShellExecute("lecteur pdf", "chemin pdf")
j'ouvre le pdf
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Aide liste fichier
Me redonner le descriptif de la commande ShellExecute ne changera rien a mon problème,
le problème viens justement du morceau "chemin du fichier", je n'arrive pas a le faire remonter depuis la liste !
j'en suis arriver a tester des truc improbables :
oui j'ai simplifier les chemin vers les éléments fixe:
cela semble évident pour vous mais pas pour moi, comme je l'ai dit au 1er poste je suis pas du tout expert en AUTOIT (et en plus je ne le fait pas par plaisir mais par besoin pour mon travail)
alors si vous connaissez la solution finale, soyez sympa de me la donner... il m'est plus simple de comprendre les choses en les voyant fonctionner...
le problème viens justement du morceau "chemin du fichier", je n'arrive pas a le faire remonter depuis la liste !
j'en suis arriver a tester des truc improbables :
Code : Tout sélectionner
ShellExecute($sPDFView,1, $sFolder & GUICtrlRead($List1))
$sFolder = @ScriptDir & "\files" ;emplacement des pdfs
$sPDFView = @ScriptDir & "\pdf\PDFXCview.exe" ;emplacement lecteur pdf
cela semble évident pour vous mais pas pour moi, comme je l'ai dit au 1er poste je suis pas du tout expert en AUTOIT (et en plus je ne le fait pas par plaisir mais par besoin pour mon travail)
alors si vous connaissez la solution finale, soyez sympa de me la donner... il m'est plus simple de comprendre les choses en les voyant fonctionner...
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Aide liste fichier
ce peut être une solution mais dans ce cas
Dans ShellExecute(), le paramètre est le chemin du PDF (deuxième position)
ShellExecute($sPDFView, $sFolder &"\"& GUICtrlRead($List1))
Dans ShellExecute(), le paramètre est le chemin du PDF (deuxième position)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Aide liste fichier
AWESOME !!!!
Mais pour bien comprendre, en fait dans cette configuration là, le "chemin" de la fonction devait simplement être le \ pour pouvoir faire le lien entre et du coup créer un chemin complet ?
Mais pour bien comprendre, en fait dans cette configuration là, le "chemin" de la fonction devait simplement être le \ pour pouvoir faire le lien entre
$sFolder
et Code : Tout sélectionner
GUICtrlRead($List1)
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Aide liste fichier
Je vous mets le code que j'avais préparé
Le principe est de récupérer les chemins des PDF du dossier dans un array, récupérer les noms des PDF pour la list et lors d'une sélection, faire une recherche dans l'array avec le nom du PDF pour récupérer le chemin. C'est plus compliqué mais c'est plus sûr comme méthode
Pour ma part, j'utilise une ListView avec 2 colonnes. La première contient les noms des fichiers et la deuxième, qui est masqué, contient les chemins. Cela évite de faire des recherches. Comme vous êtes parti sur GUICtrlCreateList() je suis resté dessus....
Si vous testez le code, mettre à jour le chemin du dossier PDF et du lecteur PDF
Le principe est de récupérer les chemins des PDF du dossier dans un array, récupérer les noms des PDF pour la list et lors d'une sélection, faire une recherche dans l'array avec le nom du PDF pour récupérer le chemin. C'est plus compliqué mais c'est plus sûr comme méthode
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <File.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tutoriels", 314, 410, 276, 135)
GUISetBkColor(0xB4B4B4)
$List1 = GUICtrlCreateList("", 56, 48, 193, 292)
$Label1 = GUICtrlCreateLabel("Liste des Tutoriels", 32, 8, 251, 37, $SS_CENTER)
GUICtrlSetFont(-1, 20, 800, 0, "Tahoma")
GUICtrlSetColor(-1, 0x000000)
$Back = GUICtrlCreateButton("Retour", 56, 360, 65, 33)
$Open = GUICtrlCreateButton("OUVRIR", 184, 360, 65, 33)
GUISetState(@SW_SHOW)
$sFolder = @DesktopDir ;& "\files" ;emplacement des pdfs =======> voir chemin
#EndRegion ### END Koda GUI section ###
Local $FileList = _FileListToArray($sFolder, "*.pdf",1,True) ; on récupère le chemin complet du pdf
;_ArrayDisplay($FileList) ;pour voir le résultat à supprimer si réussite
If @error = 1 Then
MsgBox(0, "", "No Folders Found.")
Exit
EndIf
If @error = 4 Then
MsgBox(0, "", "No Files Found.")
Exit
EndIf
For $i = 1 To $FileList[0]
$nom = StringSplit($FileList[$i],"\") ; on coupe le chemin à chaque \ et on obtient un array
GUICtrlSetData($List1, $nom[$nom[0]]) ; on récupère le nom du pdf sans le chemin
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Open
$search = _ArraySearch($FileList,GUICtrlRead($List1),0,0,0,1) ; on cherche le nom du pdf dans l'array contenant les chemins Retourne N° de la ligne trouvée
ConsoleWrite($search & @CR);pour voir le résultat à supprimer si réussite
$monpdf = $FileList[$search];on lit la ligne dans l'array pour avoir le chemin
ConsoleWrite($monpdf & @CR);pour voir le résultat à supprimer si réussite
ShellExecute($monpdf)
;dans votre cas, ce sera ShellExecute(@ScriptDir & "\pdf\PDFXCview.exe",$monpdf)
Case $Back
ExitLoop
EndSwitch
WEnd
Pour ma part, j'utilise une ListView avec 2 colonnes. La première contient les noms des fichiers et la deuxième, qui est masqué, contient les chemins. Cela évite de faire des recherches. Comme vous êtes parti sur GUICtrlCreateList() je suis resté dessus....
Si vous testez le code, mettre à jour le chemin du dossier PDF et du lecteur PDF
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: Aide liste fichier
ah en fait, si je me trompe pas, plutôt que de prendre tout le chemin d'un coup comme ce que je fait, cela prend la ligne sélectionnée et les colonnes et assemble le tout pour faire un chemin... effectivement plus complexe mais évite les erreurs...