Page 1 sur 3

[R] Aide pour l'écriture d'un script. (Renommant les .wav)

Posté : mar. 15 juil. 2014 00:54
par MisterP
Bonjour,
Ayant découvert il y a peu AutoIt à l'aide ce magnifique tutoriel, je suis donc un vrai Rooky et me pose plusieurs questions pour l'élaboration d'un script.
http://fr.openclassrooms.com/informatiq ... vec-autoit

La réalisation de ce script est loin d'être mon problème, du fait que j'ai suivit le tutoriel ci-dessus et que j'ai appris a peu près toutes les fonctions que propose Auto It , j'ai trouvé cette liste ici :
http://www.autoitscript.fr/autoit3/docs/functions.htm

Cependant, dans mon tutoriel on ne m'a jamais parlé du fait que le script produit permet a l'utilisateur de pouvoir utiliser sa souris DURANT l’exécution du script, et c'est la tout mon problème, car si j'avais commencé à apprendre sur AutoIt c'était (presque) uniquement pour ce fait non négligeable.
J'ai donc commencé a chercher un peu partout, sur internet également, qu'il me fallait utiliser un API (Je n'en ai jamais entendu parlé dans mon tuto :( )
Je me met donc a chercher, en commençant tout d'abord par comprendre ce qu'est un API, donc sur internet j'ai trouvé que c'était une interface de programmation avec un charabia pas possible, j'ai donc téléphoné à un ami qui travaille dans l'info et celui-ci m'a dit qu'il s'agissait, en gros, d'une application dans une application ... (Alors la déjà, qu'es-ce qu'à a voir le fait de mettre une application dans une autre et le fait de pouvoir libérer sa souris et son clavier durant l’exécution du script ?? :shock: )
J'ai continué de chercher et là, je tombe cette fois-ci sur le fait qu'il me faut utiliser un dll , :shock: mais qu'es-ce que c'est que ça ??? Encore une fois, je ne trouve que du charabia ...

Me voilà donc sans résultat au bout de plusieurs heures de recherches ... Je me tourne donc à présent vers vous les pros :wink:
Sachant que mon but serait de tout simplement que mon script puisse s'exécuter sur ma page même si celle-ci est réduite et que je puisse utiliser normalement mon ordi pendant que mon script est en train de fonctionner :D (en gros un script qui s'exécute dans ma fenêtre pour avoir une image)

Du coup je n'ai pas encore écrit mon script mais j'ai déjà mis ce que je voulais faire , ce à quoi je dois faire attention etc ... sur un support papier, il ne me reste donc que l'écriture, et je ne me lance pas de peur de devoir tout refaire sur un autre support que Auto It + SciTe (Non pas que je n'aime pas la prog, bien au contraire mais juste que je n'aime pas la répétition :P , d'autant plus que je dois être dans les 1000 lignes de code grand minimum :D )
Cependant j'ai pourtant bien vu un ami (il y a 1 ou 2 ans qui utilisait un script .au3 qui s'exécutait en fond de tâche je suis donc presque persuadé que cela est possible... (j'ai malheureusement perdu contact avec celui-ci .....)

Merci d'avance de votre aide !!!
Cordialement,

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 08:42
par jguinch
Dans la doc, regarde les fonctiosn dans Function Reference / Window Management / Controls.
Ces fonctions ne permettront certainement de faire ce que tu veux.

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 09:41
par overflow
Si tu nous disais plutot ce que doit faire ce script ? car la c'est ultra floue ....

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 10:51
par MisterP
jguinch a écrit :Dans la doc, regarde les fonctiosn dans Function Reference / Window Management / Controls.
Ces fonctions ne permettront certainement de faire ce que tu veux.
Je viens d'essayer cependant, lorsque je vais dans Function Reference , je n'ai pas de choix de filtre et ne peux donnc pas sélection Window Management puis Controls , je suis bloqué directement ici :
(Quand je regarde pour la doc en fra :)
http://www.autoitscript.fr/autoit3/docs/functions.htm
(Et en anglais, la même, ici :)
http://www.autoitscript.com/autoit3/docs/functions.htm
Ou alors il me faut peut être uniquement utiliser les fonctions Control[reste du nom de la fonction] dans la liste du 2e lien ??
overflow a écrit :Si tu nous disais plutot ce que doit faire ce script ? car la c'est ultra floue ....
Mon script est censé faire des actions dans une fenêtre, à savoir des clics, des écritures de textes, des détections/lecture de textes et autres fonctions, cependant cela ne doit pas mobiliser le clavier et la souris de l'utilisateur.
(C'est pour renommer ma bibliothèque de musique et qui mal nommée, j'ai environ 900Go morceaux .... :roll: :roll: :roll: )
Du coup j'ai envie que ma souris et mon clavier marchent pendant que mon script tag mes morceaux :P

Cordialement,

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 11:04
par jguinch
Je ne parle pas de la doc en ligne, je parle de AutoIt Help File qui est disponible dans le menu AutoIt sur ton poste (sur lequel AutoIt est installé).

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 11:28
par MisterP
jguinch a écrit :Je ne parle pas de la doc en ligne, je parle de AutoIt Help File qui est disponible dans le menu AutoIt sur ton poste (sur lequel AutoIt est installé).
Je n'ai pas ça, j'ai juste ceci :
http://www.autoitscript.com/site/autoit-script-editor/

J'ai téléchargé AutoIt avec SciTe en suivant le tutoriel (j'ai mis un lien dans mon premier message)
Et mon F1 ne fait absolument rien :?

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 13:39
par mikell
C:\Program Files\AutoIt3\AutoIt.chm :wink:

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 13:44
par jguinch
ou C:\Program Files (x86)\AutoIt3\AutoIt.chm :mrgreen:

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 13:55
par MisterP
jguinch a écrit :ou C:\Program Files (x86)\AutoIt3\AutoIt.chm :mrgreen:
:wink: :wink: :wink:

J'ai trouvé ! :)
Je trouve donc une petite liste de 17 fonctions.
Merci beaucoup je ne connaissais pas ça ! Cela me sera également très utile pour les fois à venir :D

Une petite dernière question et après j'arrête de vous embêter :P
Cela signifie donc que je suis obligé d'utiliser UNIQUEMENT ces fonctions ? Ou je peux en utiliser d'autres ? (EN PRENANT EN COMPTE : Le fait que je souhaite que mon script ne s'exécute que dans ma fenêtre :wink: )

Merci d'avance, et je vous remercie déjà de votre patience :)

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 14:14
par jchd
17 fonctions ? AutoIt n'est plus ce qu'il était !

Euh, quel fichier d'installation as-tu téléchargé et d'où ?

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 15:44
par MisterP
jchd a écrit :17 fonctions ? AutoIt n'est plus ce qu'il était !

Euh, quel fichier d'installation as-tu téléchargé et d'où ?
Non ! Attention, j'ai trouvé 17 fonctions parmi toutes les fonctions en ayant mis le filtre :
jguinch a écrit :Dans la doc, regarde les fonctiosn dans Function Reference / Window Management / Controls.
Ces fonctions ne permettront certainement de faire ce que tu veux.
Donc après avoir été dans Windows Management + filtre Controls.

Pas 17 fonctions au total :wink:

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 18:09
par MisterP
MisterP a écrit :Une petite dernière question et après j'arrête de vous embêter torturer :P
Cela signifie donc que je suis obligé d'utiliser UNIQUEMENT ces fonctions ? Ou je peux en utiliser d'autres ? (EN PRENANT EN COMPTE : Le fait que je souhaite que mon script ne s'exécute que dans ma fenêtre :wink: )

Merci d'avance, et je vous remercie déjà de votre patience :)
Je rappelle la question de départ, parce que si on ne voit pas la question, je n'aurai évidemment pas de réponse ^^

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 18:39
par jchd
Il nous a prévenu bille en tête : MisterP ne donne que le minimum d'informations...
Chacun ses stratégies.

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 19:06
par MisterP
jchd a écrit :Il nous a prévenu bille en tête : MisterP ne donne que le minimum d'informations...
Chacun ses stratégies.
En fait je dirais plus que c'est que je ne sais pas quoi vous dire de plus ...
C'est un script qui aura pour but de renommer des fichiers .wave sauf que j'ai besoin que lorsqu'il tourne , avoir un libre accès a ma souris et mon clavier , enfin a mon ordi quoi ^^'
Parce que vu la quantité de morceaux que j'ai a faire, je sent que le script va tourner jour et nuit pendant pas loin d'une semaine :mrgreen:
Du coup on me répond qu'il me faut utiliser certaines fonctions et qu'elles répondront a mes attentes, mais je me demande si du coup, dans l'écriture de mon script j'ai le droit uniquement a ces fonctions ou si je peux en utiliser également d'autres qui fonctionneront de la même manière ?
Ce qui est sur c'est que j'aurai besoin de la fonction Run pour lancer la fenêtre de mon dossier, à moins que je sois obligé de mettre la fenêtre moi même puis le script fait le boulot (parce que dans ce cas précis je n'aurai le droit qu'au fonction que m'a présenté jguinch et pas aux autres telles que Run)

J'espère que vous m'avez compris :roll: :mrgreen:

J'ai essayé ces fonctions tout a l'heure, j'ai pas réussi a en faire marcher une seule :shock: :shock: :shock:
Mais bon j'étais pas concentré :oops: , donc je re regarde ce soir et vous tient au courant :)

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mar. 15 juil. 2014 23:40
par jguinch
Pas facile de t'aider sans vraiment savoir ce que tu souhaites faire...
Tu veux renommer des fichiers, bien. Quel est le rapport avec la souris et le clavier ? Aucun...
Si tu regardes un peu la doc, tu verras qu'il y a plein de fonctions qui permettent de :
- lister les fichiers d'un répertoire (_FileListToArray)
- renommer des fichiers (FileMove)
- triturer les chaînes de caractères (String....)

Juste un aperçu de ce qui peut être fait, sans faire appel à la souris ni au clavier :
► Afficher le texte
A moins que ton énoncé soit très incomplet, un code comme celui ci va te renommer les fichiers et quelques secondes ou minutes...
Pour renommer les fichiers, est-ce que tu t'es fixé une convention de nommage ?

Maintenant, précise un peu plus ta demande si ça ne correspond pas au besoin.

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mer. 16 juil. 2014 00:39
par MisterP
Je vais essayer d'être le plus complet possible. :D
En clair, j'ai un gros fichier dans lequel j'ai pleins de fichiers de musique nommés a l'arrache, cependant, pour m'y repérer j'ai quand même mis l'infrastructure suivante :
Musique (Gros dossier) - [Nom de l'artiste](dossier) - [Nom de l'album](dossier) - [Fichiers mis en vrac](.wave)
Ensuite j'ai envie que chaque fichier .wave soit nommé de la manière suivante :
[Nom de l'Artiste] - [Nom de l'album] - [N° de la musique dans l'album] - [Nom de la chanson]
Exemple : Mariah Carey - Merry Christmas (2014) - 01 - Silent Night

Ce qui me permettra de mettre toute ma musique directement dans mon gros dossier Musique et tout sera bien trié nickel, et surtout, cela ne fera pas "foireux" dans mes lecteurs de musique.

Il faut donc que mon script, fasse pour chaque album l'action suivante :
-Je prends le nom de l'artiste ($Artiste)
-Je prends le nom de l'album ($Album)
-Je prends le nom de la musique ($NomChanson) (qui est le nom du fichier wave ! ;) )
Je renomme le fichier de la sorte : $Artiste - $Album - 01 - $NomChanson

On re-corse un peu la chose, il faut ajouter +1 à 01 pour la chanson suivante pour avoir 02 vu que c'est la chanson 02 de l'album, il faut donc, je pense que le script détecte le nombre de morceaux que l'album possède (enfin si cela marche comme je pense ^^') soit le nombre de fichiers que contient mon dossier Album.

On supprime la valeur des variable et on passe à l'album suivant.
Le tout est d'apprendre a naviguer dans les dossiers et de faire comprendre au script comment est "organisé" mon dossier musique.


Voilà voilà, le fait de vouloir ne pas utiliser la souris et le clavier de l'utilisateur, en gros ne pas gêner l'utilisateur, que le script s'exécute comme en arrière plan, limite comme si l'utilisateur ne savait pas que le script tourne, qu'il ne s'en aperçoit pas :
Du fait que la procédure va durer longtemps j'aimerai pouvoir utiliser normalement mon pc pendant que mon script fasse ce qui lui est demandé ! :D


J'aurai également plus tard un autre script qui lui sera encore plus long et à adapter car il utilisera un logiciel, le but sera de tagger mes morceaux. (leur affecter une image etc..., enfin tagger quoi ^^)


Cependant, j'aimerai bien que l'on m'explique car j'ai vraiment envie de progresser en programmation, c'est pas juste, tient j'ai besoin de faire ça donc je me met à la programmation, c'est l'inverse, j'ai envie de faire de la prog, du coup je trouve une application utile : faire des choses répétitives, mais le but premier est de comprendre ce que je fais :wink:


Merci d'avoir lu mon roman, :mrgreen:

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mer. 16 juil. 2014 01:36
par orax
MisterP a écrit :En clair, j'ai un gros fichier dans lequel j'ai pleins de fichiers de musique
j'ai un gros fichier dossier :P

C'est certes plus long mais bien plus clair.

Je ne vois pas de raison pour que le script gêne l'utilisateur (concernant le clavier ou la souris). Le renommage des fichiers/dossiers se fera en arrière plan.

Si besoin, pour récupérer des infos sur les fichiers médias, il y a Mediainfo. Voir 09. - Media sur http://www.autoitscript.com/forum/topic ... on-thread/

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mer. 16 juil. 2014 01:57
par blacksoul305
Bonsoir,

tout de suite le problème énoncé devient plus clair. De plus, jguinch a pu te donner les bonnes commandes à utiliser, soient celles qui te permettent de manier fichiers et dossiers.

La complexité ici est le fait que tu travailles avec vraisemblablement beaucoup de fichiers, ainsi l'utilisation de tableaux devient nécessaire pour aller plus vite. Voici un code que j'ai fait et qui fonctionne pour moi. Attention, il ne renomme uniquement les fichiers .wav. Je serai toi, je créerai un dossier avec des dossiers factices et des fichiers factices afin de voir si le code colle par rapport à ton problème.
► Afficher le texte
Bonne soirée et bonne continuation ! N'hésite pas si tu as des questions.

PS : ne cite pas les messages systématiquement quand tu réponds car ça encombre le forum. Utilise les citations que si nécessaire :)

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mer. 16 juil. 2014 02:17
par overflow
Même plat et recette différente ;)
Interface basic , compteur , choix du répertoire

pas de filtre sur le FileMove , tout les fichiers présents dans le répertoire sont renommer (a modifier au besoin)
► Afficher le texte

Re: [..] Aide pour l'écriture d'un futur script.

Posté : mer. 16 juil. 2014 10:15
par MisterP
Wow :shock: :shock: :shock:
Y'a pas plus de 50 lignes !!!! Avec mon ancien petit logiciel je comptais pas loin de 1000 lignes de codes :lol:
Entre les clics droits , Ctrl pour avoir le nom de l'artiste, clic ailleurs sans renommer le dossier de l'artiste etc etc ...

D'abord je vous remercie pour vos scripts !!! :D
Mais avant des les utiliser j'aimerai vraiment comprendre, je suis vraiment la pour apprendre :wink:
Donc le code de de BlackSoul,avec en rouge mes commentaires, ce que je comprends, ce que je comprends pas , et surtout n'hésitez pas à me corriger mes erreurs :)
► Afficher le texte

De même, le code de overflow :

EDIT : J'ai changé ce que j'ai mis grâce aux connaissances que m'a apporté Soul à la page 2 !! ;)
► Afficher le texte
J'ai du loupé quelque chose par contre, parce que je n'ai pas trouvé que le code ci dessus me permettait de mettre le Numéro de la chanson dans l'album , dans le titre de la chanson ? J'ai l'impression que le compteur n'est la que pour dire à l'utilisateur combien de fichiers il a renommé une fois qu'il a fini, après j'ai surement loupé un bout ^^'



En tout cas merci beaucoup de prendre autant de temps pour moi, cela me fait vraiment plaisir !!!